I’ve a WCF Service which is hosted inside MVC Application. Service interacts with several Repository (I’ve Code First design) to do its job. Currently I create an instance of all Repository classes inside each Service method, I think it is bad and my Service is totally coupled to Repository classes. I want to know how should I implement a nice and clean DI for WCF Service.
Thanks in Advance.
One approach you can take is to inject a repository factory in your service class and then call/get your repository from the factory.
Repository Factory:
Service Class:
With this approach, you’ll need to register and resolve only your repository factory, not all the individual repositories. This is sort of hybrid approach, but I think it’s very clean and easy to understand. Of course, you can always not use a factory and resolve your repositories in every call. I can show a sample of that too, if you’d like.