Итак, у меня есть два отдельных приложения, которые я хочу отправлять сообщения между ними. Я использую NServiceBus, но это не имеет большого значения. Как отправить сообщение из приложения A в приложение B и сообщить ли они обоим тем же контрактам?Как я могу делиться классами сообщений между приложениями при использовании NServiceBus?
Так приложение А имеет класс SecretMessage ...
public class SecretMessage : IMessage
{
public string Title { get; set; }
public string Body { get; set; }
}
Это объект, который будет сериализовать и передается по сети в приложение В.
Теперь в приложении B, как я слушать сообщения такого типа, а затем уметь де-сериализовать их в один класс? Поэтому я могу использовать данные, поскольку они были отправлены, но это не кошмар для обслуживания.
Может ли приложение B просто иметь копию класса? Должно ли это обрабатываться через общую DLL классов сообщений, к которой у каждого приложения есть ссылка (надеюсь, нет)? Должны ли они воссоздаваться в каждом приложении как полностью отдельные DTO с теми же свойствами?
Я что-то упустил?
Nice post. Является ли основное различие между # 1 и # 2, где живут классы? В # 1 она находится в DLL, которая распределяется между проектами, где в # 2 классы являются частью самого проекта-потребителя? –
Право - обычно генерация кода происходит либо вне проекта, либо результаты импортируются, либо внутри проекта в качестве элемента сборки. – stephbu