我刚刚遇到一个问题,我希望每次解析时都会将新类型注入请求的类型。
我必须注册类型的当前代码是
container.RegisterType<IFirstT, FirstT>();
container.RegisterType<ISecondT, SecondT>();
container.RegisterType<IInjectableT, InjectableT>()
.Configure<InjectedMembers>()
.ConfigureInjectionFor<InjectableT>(
new InjectionConstructor(
container.Resolve<IFirstT>(),
container.Resolve<ISecondT>(),
)
);
我现在已经意识到每次解析 IInjectableT 时都会使用相同的注入构造函数。
InjectionConstructor是否可能每次都使用unity创建新的依赖项?
我意识到我可以解决 InjectableT 的构造函数内部的依赖关系并实现同样的目的,但是我打算让IOC控制这种类型的行为并选择是否有新的实例应注射或现有注射。
答案 0 :(得分:3)
您应该使用ResolvedParameter:
container.RegisterType<IInjectableT, InjectableT>(
new InjectionConstructor(
new ResolvedParameter<IFirstT>(),
new ResolvedParameter<ISecondT>()
)
);