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/