如何在xml配置中注册它

时间:2011-06-01 19:53:44

标签: xml castle-windsor

如何在xml配置中注册这样的东西(我知道,我知道,约定优于配置,但我支持遗留代码,所以我需要在xml配置中执行此操作)。

具体来说,我不清楚如何使用抽象基类和接口类型注册AssignTechniciansFactory。通常,我得到了如何为基类或只是接口。但是如何将两者注册到组件?

public class AssignTechniciansFactory: 
         BaseAssignTechniciansFactory<Service>, IAssignTechniciansFactory

其中:

public class Service : BaseAssignTechnician

public abstract class BaseAssignTechniciansFactory<T> 
                         where T: BaseAssignTechnician

这就是我所拥有的,我知道这不正确:

<component id="assignTechniciansFactory"
           service="MyNamespace.IAssignTechniciansFactory, MyAssembly" 
           type="MyNamespace.AssignTechniciansFactory, MyAssembly">
   <parameters>
     <dmq>${dmq}</dmq>
     <builder>${builder}</builder>
   </parameters>
</component>

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

Castle现在非常宽容,如果服务和类型在加载的所有类型中都是唯一的,则不必指定程序集或命名空间。如果您遇到命名空间问题或程序集名称问题,这应该有效:

<component id="assignTechniciansFactory"
           service="IAssignTechniciansFactory" 
           type="AssignTechniciansFactory">
   <parameters>
     <dmq>${dmq}</dmq>
     <builder>${builder}</builder>
   </parameters>
</component>