【发布时间】:2017-07-10 20:08:24
【问题描述】:
我希望能够访问内置的 IoC 容器(IServiceProvider 我相信)。
我知道在代码中访问它通常是不好的做法,我们应该允许框架将所需的任何依赖项注入到控制器之类的东西中。
我对此的特殊应用是我正在使用另一个产品Hangfire。该框架实例化对象本身。为了将依赖项注入这些对象,您需要覆盖 JobActivator 类并在那里引用您自己的容器。
This 问题展示了如何为测试目的创建一个新容器,但我想访问我已经设置的容器,而不必复制它。使用 Autofac 等 DI 框架,您可以在添加所有服务后构建容器时访问容器。
谁能帮忙?
【问题讨论】:
-
您的案例完全有效。有时您需要延迟或分派对象的创建,这意味着您需要回调“容器”。只要这个回调在Composition Root内部实现,就是absolutely fine。
标签: c# .net-core dependency-injection