所以我有两个单独的应用程序,我想在它们之间发送消息。我碰巧使用的是NServiceBus,但这并不重要。如何从应用程序A向应用程序B发送消息并让他们都知道相同的合同?
所以app A有一个类SecretMessage ......
public class SecretMessage : IMessage
{
public string Title { get; set; }
public string Body { get; set; }
}
这是将被序列化并通过网络发送到应用程序B的对象。
现在在应用B中,我如何监听该类型的消息,然后能够将它们反序列化到同一个类?因此,我可以使用发送时的数据,而不会成为维护的噩梦。
app B是否只需拥有该类的副本?这应该通过每个应用程序引用的共享dll消息类来处理(我希望不是)?它们应该在每个应用程序中重新创建为具有相同属性的完全独立的DTO吗?
我在这里错过了什么吗?
答案 0 :(得分:6)
这可能不是你想要的答案,但这里只有很少的银子弹。
您实际上只有一些选择,因此取决于您在邮件类中所需的功能级别和类型强化:
那些确实是唯一的选择。恕我直言#2然后按顺序#1通常是最有用的模式。
答案 1 :(得分:2)
正如Juval Lowy in Programming .NET Components所建议的那样,在他们自己的共享DLL中单独使用纯接口。
http://arcanecode.com/2007/02/14/more-oop-interfaces-in-c-part-2/