我试图做一个有两个构造函数的类,它们都带有三个参数。统一长度为3的多个构造函数
public class RequestController : IRequestController
{
public RequestController(IConnector, IAddRequestHandler, IAddReplyHandler) { ... }
public RequestController(IConnector, IUpdateRequestHandler, IUpdateReplyHandler) { ... }
}
我知道,团结不升值同样长度的多个构造和我一直在试图解决:如果用户刚刚更新一个构造函数被调用,如果用户将被添加,其他这个问题。到目前为止,我只能找到详细的解释,如果有长度为1的多个构造函数这是我到目前为止有:
var container = new UnityContainer();
container.RegisterType<IRequestController, RequestController>("addConstructor",
new InjectionConstructor(typeof(IMQSeriesConnector), typeof(IAddRequestHandler), typeof(IAddReplyHandler)));
container.RegisterType<IRequestController, RequestController ("updateContructor",
new InjectionConstructor(typeof(IConnector), typeof(IUpdateRequestHandler), typeof(IUpdateReplyHandler)));
我认为下一步是沿着线的东西:
container.Resolve<IRequestController>("addConstructor",
new DependencyOverride(typeof(IConnector), typeof(IAddRequestHandler), typeof(IAddReplyHandler)));
container.Resolve<IRequestController>("updateConstructor",
new DependencyOverride(typeof(IRequestController), typeof(IAddRequestHandler), typeof(IAddReplyHandler)));
但是,这当然是行不通的。我错过了什么“container.Resolve”片?
这似乎有点怪异......不知道,但我会避免使用[Dependency]装饰的属性,并跳过构造注入。 – Will