如何在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>
答案 0 :(得分:1)
除了@adymitruk所说的you can specify additional services for a component via forwardedTypes
element in XML configuration。
答案 1 :(得分:0)
Castle现在非常宽容,如果服务和类型在加载的所有类型中都是唯一的,则不必指定程序集或命名空间。如果您遇到命名空间问题或程序集名称问题,这应该有效:
<component id="assignTechniciansFactory"
service="IAssignTechniciansFactory"
type="AssignTechniciansFactory">
<parameters>
<dmq>${dmq}</dmq>
<builder>${builder}</builder>
</parameters>
</component>