每次使用unity解析类型时,都会注入新的构造函数参数

时间:2011-03-04 00:29:39

标签: .net dependency-injection inversion-of-control unity-container

我刚刚遇到一个问题,我希望每次解析时都会将新类型注入请求的类型。

我必须注册类型的当前代码是

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控制这种类型的行为并选择是否有新的实例应注射或现有注射。

1 个答案:

答案 0 :(得分:3)

您应该使用ResolvedParameter:

container.RegisterType<IInjectableT, InjectableT>(
          new InjectionConstructor(
                  new ResolvedParameter<IFirstT>(),
                  new ResolvedParameter<ISecondT>()
           )
    );
相关问题