I have this wcf method
Profile GetProfileInfo(string profileType, string profileName)
and a business rule:
if profileType is “A” read from database.
if profileType is “B” read from xml file.
The question is: how to implement it using a dependency injection container?
Let’s first assume that you have an IProfileRepository something like this:
as well as two implementations:
DatabaseProfileRepositoryandXmlProfileRepository. The issue is that you would like to pick the correct one based on the value of profileType.You can do this by introducing this Abstract Factory:
Assuming that the IProfileRepositoryFactory has been injected into the service implementation, you can now implement the GetProfileInfo method like this:
A concrete implementation of IProfileRepositoryFactory might look like this:
Now you just need to get your DI Container of choice to wire it all up for you…