我试图发布消息如下图所示NServiceBus:找不到元数据(信息)
_bus.Publish(new BatchCompleted { BatchId = batch.Id});
和处理它在BatchCompletedHandler:
public class BatchCompletedHandler: IHandleMessages<BatchCompleted>
{
public void Handle(BatchCompleted message)
{
Do Some Stuff...
}
}
每当我试着和发布消息我收到以下System.Exception:
找不到'MyAssembly.BatchCompleted'的元数据。消息需要实现'IMessage','IEvent'或'ICommand'。另外,如果你不想实现一个接口,你可以配置'Unobtrusive Mode Messages',并使用约定来配置消息的映射方式。
消息不实施IEvent如下所示
[Serializable]
public class BatchCompleted : IEvent
{
public int BatchId{ get; set; }
}
我使用以下代码
Configure.With(MyAssembly)
消息处理程序是在MyAssembly程序的组件和消息是配置NSB在MyMessagesAssembly中。
我在做什么错?
你能发布你的配置吗?您的UnicastBusConfig,消息映射是否已正确配置?您的邮件汇编是否使用相同的.net版本?即您的处理程序是否使用.net 4.0,而您的消息是.net 4.5? –
感谢Indu,指针。这是导致问题的配置! –