如何通过构造函数中的unity传递参数来解决依赖关系?

时间:2012-12-04 23:33:45

标签: c# .net dependency-injection unity-container

  

可能重复:
  Can I pass constructor parameters to Unity’s Resolve() method?
  Constructor Injection in C#/Unity?

可以通过在服务的构造函数中传递参数来解析依赖关系吗?

如果我能做到这一点?

1 个答案:

答案 0 :(得分:6)

创建InjectionConstructor并将其传递给RegisterType()

var unityContainer = new UnityContainer();

ISnuh snuh = new Snuh();
InjectionConstructor injectionConstructor = new InjectionConstructor(snuh);

unityContainer.RegisterType<ICalculator, SimpleCalculator>(injectionConstructor);

如果只有在解析类型时才需要这样做,那就是在使用ResolverOverride[]时:

public static T Resolve<T>(this IUnityContainer container, params ResolverOverride[] overrides);

MSDN

  

使用ParameterOverride覆盖指定的构造函数参数   或参数。