[这类似于:(stackoverflow:多个构造函数) ]
我有以下课程:
具有以下构造函数的“ServiceHost:IServiceHost”:
“公共服务主机(ServiceBase baseService)”
[注意,这实际上是“System.ServiceProcess.ServiceBase”的派生词]。如果我手动 - 在代码中 - 将我的“ServiceToHandle:ServiceBase”作为“baseService”参数传递,一切都很好。现在,我尝试通过 xm-configuration 做同样的事情,并配置了两个映射:
<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>();
我期待一个已配置的主机对象,它必须使用从“System.ServiceProcess.ServiceBase”派生的附加“TheServiceToControl”对象(我的对象)构建。但我遇到了一个丑陋的错误:
未处理的异常:Castle.MicroKernel.Handlers.HandlerException:无法创建组件“TheServiceController-AKA-ServiceHost”,因为它需要满足依赖关系。
'TheServiceController-AKA-ServiceHost' 正在等待以下依赖项: - 服务'System.ServiceProcess。ServiceBase ' 未注册。
我试图添加 System.ServiceProcess 程序集,但我没有办法,它可以制作!
如果有人可能可以解释,这里发生了什么,那就太好了!我没想到必须在层次结构中创建所有对象。
无论如何,谢谢,最好的问候!