如何在多个类中访问同一个IoC容器(即Unity)
本文关键字:容器 IoC Unity 同一个 访问 | 更新日期: 2023-09-27 18:28:26
如何在多个类中访问同一个IoC容器(即Unity)?
当嵌入到方法中时,以下容器是一个局部变量。因此,我如何在其他类中访问此容器?
using (var container = new UnityContainer())
{
container.RegisterInstance(typeof(IDraftRepository), new MockDraftRepository());
}
您可以创建一个静态类,并将容器作为属性公开。然后所有其他类都可以访问和使用它。另一种方法是将IUnityContainer
注入到想要使用它的类中(通过构造函数注入)。
话虽如此,我强烈建议你不要这样做。容器唯一应该使用的地方是CompositionRoot,它是在应用程序的入口点将所有类组合在一起的地方。
如果您的类需要依赖项,则可以将它们注入构造函数中。
在类中使用容器被称为ServiceLocation,被认为是一种反模式。