[這類似於:(stackoverflow: multiple constructors)]無法在XML配置配置依賴對象作爲構造器參數
我有下面的類:
「的ServiceHost:IServiceHost」 具有以下構造:
「 public ServiceHost(ServiceBase baseService)「
[注意,這實際上是」System.ServiceProcess.ServiceBase「的衍生物]。 如果我手動 - 在代碼中 - 傳入我的「ServiceToHandle:ServiceBase」作爲「baseService」參數,一切都很好。現在,我嘗試通過XM-配置做同樣的,我配置了兩個映射:
<component id="TheServiceToControl"
service="ServiceDemo.ServiceToHandle, ServiceToHandle1"
type="ServiceDemo.ServiceToHandle, ServiceToHandle1"
>
</component>
<component id="TheServiceController-AKA-ServiceHost"
service="ServiceDemo.IServiceHost, IServiceHost"
type="ServiceDemo.ServiceHost, ServiceHost"
>
<parameters>
<serviceBase>${TheServiceToControl}</serviceBase>
</parameters>
</component>
當我加載:
var container = new WindsorContainer(new XmlInterpreter());
IServiceHost host = container.Resolve<IServiceHost>();
我期待一個配置的主機對象,必須要構建與額外的「TheServiceToControl」 對象,(我的對象),它是從「System.ServiceProcess.ServiceBase」派生。但我得到一個醜陋的錯誤:
未處理的異常:Castle.MicroKernel.Handlers.HandlerException:無法創建組件 'TheServiceController-AKA-ServiceHost',因爲它具有依賴性得到滿足。
'TheServiceController-AKA-ServiceHost'正在等待下列依賴項: - Service'System.ServiceProcess。 ServiceBase'這未註冊。
我試圖添加System.ServiceProcess程序集,但我發現沒有辦法,它可以做!
如果有人可能可以解釋,這裏發生了什麼事情,那真是太棒了!我不希望在層次結構中創建所有對象。
無論如何感謝和 最好的問候!