可能重复:
Can I pass constructor parameters to Unity’s Resolve() method?
Constructor Injection in C#/Unity?
可以通过在服务的构造函数中传递参数来解析依赖关系吗?
如果我能做到这一点?
答案 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覆盖指定的构造函数参数 或参数。