我有兩個服務IServiceA和IServiceB。 IServiceB的具體實現如下所示:Unity RegisterType爲一個構造函數,它自己接受服務
public class ServiceB : IServiceB {
public ServiceB(string path, IServiceA serviceA) { ... }
}
所以我需要傳遞一個字符串和一個ServiceA。
我有點卡住我會怎麼做。我現在有這個權利:
var path = _config.Path;
container.RegisterType<IServiceA, ServiceA>();
container.RegisterType<IServiceB, ServiceB>(
new InjectionConstructor(path, container.Resolve<IServiceA>());
這顯然是錯誤的,因爲我實際實例化一個ServiceA,並與所有ServiceB的註冊一個實例。
我該如何告訴Unity始終解決「新鮮」的ServiceA?我嘗試從RegisterType中刪除IServiceA,並且拋出異常告訴我沒有ctor(string)
,這是正確的,因爲它是ctor(string,IServiceA)
。