如何在多个类中访问相同的IoC容器(即Unity)?

时间:2015-12-30 12:30:16

标签: c# dependency-injection inversion-of-control prism ioc-container

如何在多个类中访问相同的IoC容器(即Unity)?

以下容器是嵌入方法内部时的局部变量。 因此,如何在其他类中访问此容器?

    using (var container = new UnityContainer())
    {
        container.RegisterInstance(typeof(IDraftRepository), new MockDraftRepository());
    }

1 个答案:

答案 0 :(得分:3)

您可以创建静态类并使其将容器公开为属性。然后所有其他类都可以访问和使用它。另一种方法是将IUnityContainer注入到想要使用它的类中(通过构造函数注入)。

话虽如此,我强烈建议你不要这样做。应该使用容器的唯一地方是Composition Root,您可以在应用程序的入口点将所有类组合在一起。

如果你的类需要依赖项,你可以在构造函数中注入它们。

在类中使用容器称为服务位置and is considered an anti-pattern