0

使用 unity 时,如果我尝试注入一个我没有在容器中显式注册的具体类型,unity 将尝试定位当前类型并为我实例化一个新类型,然后再将其注入依赖它的类中。

我如何确保只使用这种类型的单个实例?我需要事先在容器中显式注册一个实例吗?

4

1 回答 1

2

来自MSDN

您可以使用 Unity 容器生成具有公共构造函数的任何对象的实例(换句话说,您可以使用 new 运算符创建的对象),而无需在容器中注册该类型的映射。当您调用 Resolve 方法并指定未注册类型的默认实例时,容器只需调用该类型的构造函数并返回结果。

简单地说,的,您必须为您的类型注册一个映射,才能在您的应用程序中将其用作单例。您可以使用RegisterInstance方法或RegisterType提供ContainerControlledLifetimeManager作为生命周期管理器来实现它。

于 2012-04-22T20:36:25.290 回答