Possible Duplicate:
Can I pass constructor parameters to Unity’s Resolve() method?
  Constructor Injection in C#/Unity?




是否有可能在服务的构造函数中通过传递参数统一来解析依赖项?

如果是我该怎么办?

最佳答案

创建一个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覆盖指定的构造函数参数
  或参数。

关于c# - 如何在构造函数中统一传递参数来解决依赖性? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13713868/

10-16 17:49