Tôi đang cố gắng để xuất bản một thông điệp như hình dưới đâyNServiceBus: Không thể tìm thấy Metadata cho (message)
_bus.Publish(new BatchCompleted { BatchId = batch.Id});
Và xử lý nó trong một BatchCompletedHandler:
public class BatchCompletedHandler: IHandleMessages<BatchCompleted>
{
public void Handle(BatchCompleted message)
{
Do Some Stuff...
}
}
Bất cứ khi nào tôi cố gắng và công bố tin nhắn Tôi nhận được System.Exception sau đây:
Không thể tìm thấy Siêu dữ liệu cho 'MyAssembly.BatchCompleted'. Thư cần phải triển khai 'IMessage', 'IEvent' hoặc 'ICommand'. Ngoài ra, nếu bạn không muốn thực hiện một giao diện, bạn có thể định cấu hình 'Thông điệp Chế độ Không phô trương' và sử dụng quy ước để định cấu hình cách các thư được ánh xạ.
Thông điệp không thực hiện IEvent như hình dưới đây
[Serializable]
public class BatchCompleted : IEvent
{
public int BatchId{ get; set; }
}
Tôi cấu hình NSB sử dụng đoạn mã sau
Configure.With(MyAssembly)
Việc xử lý thông điệp là trong lắp ráp MyAssembly và các thông điệp trong MyMessagesAssembly.
Tôi đang làm gì sai?
Bạn có thể đăng cấu hình của mình không? Bản đồ UnicastBusConfig của bạn có được định cấu hình thích hợp không? Là tin nhắn của bạn lắp ráp bằng cách sử dụng cùng một phiên bản .net? tức là trình xử lý của bạn sử dụng .net 4.0 và thư của bạn là .net 4.5? –
Cảm ơn Indu, cho con trỏ. Đó là cấu hình gây ra vấn đề! –