【发布时间】:2013-03-25 11:52:45
【问题描述】:
[这类似于:(stackoverflow: multiple constructors)]
我有以下课程:
"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>();
我期待一个已配置的主机对象,它必须使用附加的“TheServiceToControl”构建 对象,(我的对象)派生自“System.ServiceProcess.ServiceBase”。但是我遇到了一个丑陋的错误:
未处理的异常:Castle.MicroKernel.Handlers.HandlerException:无法创建组件 'TheServiceController-AKA-ServiceHost' 因为它需要满足依赖关系。
'TheServiceController-AKA-ServiceHost' 正在等待以下依赖项: - 未注册的服务“System.ServiceProcess.ServiceBase”。
我尝试添加 System.ServiceProcess 程序集,但我没有办法,它可以制作!
如果有人能解释一下,这里发生了什么,那就太好了!!我没想到必须创建层次结构中的所有对象。
无论如何,谢谢 最好的问候!
【问题讨论】:
标签: xml configuration castle-windsor