我正在注册类似的类型:
IUnityContainer container = new UnityContainer()
.RegisterType<IActiveDirectoryUser, ADUser>();
ADUser类包含2个构造函数,一个无参数,一个具有单个参数。当解析器解决它时,它会选择带参数的解析器。如何告诉它使用无参数控制器?
答案 0 :(得分:10)
注册类型时,使用InjectionConstructor
指示Unity应使用无参数构造函数:
IUnityContainer container = new UnityContainer();
container.RegisterType<IActiveDirectoryUser, ADUser>(new InjectionConstructor());
由于您没有将任何类型传递给InjectionConstructor
构造函数,因此Unity会在实例化ADUser
类时知道使用无参数构造函数。
答案 1 :(得分:1)
使用[InjectionConstructor]
注释所需的构造函数。