解决类型时,注入新的构造函数参数
我正在更新的一些代码使用统一,尽管我得到了一般原则。
这样的一个接口被注册:
_container.RegisterType<ISomething, Something>(
new ContainerControlledLifetimeManager(),
new InjectionConstructor(
new ResolvedParameter<ITypeA>(),
new ResolvedParameter<ITypeB>(),
_container.Resolve<ITypeC>()
)
);
我感到困惑的是new ResolvedParameter<ITypeB>()
和_container.Resolve<ITypeC>()
之间的区别 - 有人可以更清楚地表明什么区别以及何时可以使用/首选?
每次解决ISomething
,新的ITypeA
和新的ITypeB
实现都是实例化的(假设它们未注册为单例)并传递给构造函数。但是对于ITypeC
,您将在调用_container.Resolve<ITypeC>()
时创建了确切的实例。
请参阅相关问题:每次使用Unity