我正在设计一个系统,该系统能够基于特定(基于字符串)MessageType 处理基于类型和基于 xml 的消息。理想情况下,为了处理这些消息,我想使用一系列提供者,例如:
[MessageType("CreateWorkOrder")]
public class CreateWorkOrderMessageProcessingProvider: IMessageProcessingProvider
{
...
然后在 Windsor 中按名称“CreateWorkOrder”解决。我想知道是否可以使用以下变体按名称注册(使用 MessageType 属性):
container.Register(Classes.FromAssemblyContaining<IMessageProcessingProvider>().Where(t => Attribute.IsDefined(t, typeof(MessageTypeAttribute))));
还是我需要提供自定义解析器?如果有更好的模式可以在这里实现,我很高兴听到它。