我在我的Web应用程序中使用IoC进行实验,并希望根据最佳实践进行操作。最近我发现了一个名为DryIoc的IoC框架,它应该是小而快的。何处放置容器?
我已经读过这些例子,但似乎没有指出我应该放置容器本身。
它应该驻留在控制器中吗?或者在Global.asax中?其他地方也许?或者也许作为一个类的静态变量?
如果有人能够引导我朝着正确的方向发展,最好是使用一些示例代码,因为我停滞不前,并且不知道如何继续,我会感激的。
var container = new Container(); // Should obviously NOT be a local variable
container.Register<ISalesAgentRepository, SalesAgentRepository>(Reuse.Singleton);
您需要使用[合成根目录](http://blog.ploeh.dk/2011/07/28/CompositionRoot/)中的容器。 –
我建议使用更广泛使用的容器来开始使用DI,因为您会发现更多的支持,示例和工具。如果在使用不同的容器之后,您决定尝试使用这些小型,不受欢迎的容器,那么您将有经验知道如何正确使用它们。 –
与其他评论和回答相反,我建议你[根本不要使用DI容器](http://blog.ploeh.dk/2014/06/10/pure-di)。这将有利于您更好地了解底层模式,并且不会陷入一些尴尬的API问题。 –