I am using Ninject for IoC.
UPDATE
My repository uses XML Serializer to persist objects.
How do I inject dependencies after deserializing an entity with behavior and state in the same class (POCO) and without using the service locator anti-pattern?
This is the Save method:
public void Save(IIntegrationService service)
{
if (service.Id == 0)
servico.Id = GetNewServiceId();
var serializer = new XmlSerializer(service.GetType());
using (TextWriter writer = new StreamWriter(File.Open(GetStoreFileName(service), FileMode.Create)))
{
serializer.Serialize(writer, service);
}
}
This is the GetAll method:
public List<IIntegrationService> GetAll()
{
var services = new List<IIntegrationService>();
foreach (string fileName in Directory.GetFiles(StoreDirectory, "*.xml"))
{
Type serviceTypeOfFile = GetServiceTypeByGUID(GetGUIDFromFileName(fileName));
var serializer = new XmlSerializer(serviceTypeOfFile);
using (XmlReader reader = XmlReader.Create(fileName))
{
var service = (IIntegrationService) serializer.Deserialize(reader);
services.Add(service);
}
return services;
}
}
The problem is that the service creation does not comes from ninject kernel, so, the dependencies are not injected.