可能重复:
我可以将构造函数参数传递给 Unity 的 Resolve() 方法吗?
C#/Unity 中的构造函数注入?
可以在服务的构造函数中通过统一传递参数来解决依赖关系来解决?
如果是我该怎么办?
可能重复:
我可以将构造函数参数传递给 Unity 的 Resolve() 方法吗?
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 覆盖指定的构造函数参数或参数。