我試圖做一個有兩個構造函數的類,它們都帶有三個參數。統一長度爲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