-2

我是 Unity/Dependency Injection 概念的新手。

我的理解是您使用 DI 来避免紧密耦合的类结构,但我很难看到它的好处。

我关注了此链接上的“Unity Container”部分http://www.refactorthis.net/post/2012/10/25/Dependency-Injection-and-Inversion-of-Control-Ioc-With-the-Microsoft-Unity -Container.aspx但我不知道为什么这是“更好” - 它引入了更多代码,但在 LoggingModule.cs 中我仍然必须有这行代码:

_iocContainer.RegisterType(typeof(ILogger), typeof(DBLogger));

这意味着仍然存在依赖关系,但我刚刚将它移到了一个僻静的位置。我仍然需要告诉 Unity 我要使用哪个类

这个问题可能会被标记为非建设性的,但我想知道它的好处以及如何正确使用 Unity/DI。

谢谢,安德鲁

4

1 回答 1

1

好处是您的服务现在依赖于抽象 ( ILogger) 并且抽象的解析是容器的责任。此外,您的依赖项的声明以及要使用的具体物及其生命周期集中在 Composition Root(您在容器中注册依赖项的位置)中。

我建议你阅读一本关于依赖注入的好书,那里有好几本。

于 2013-08-20T08:38:04.750 回答