Удивительно, но я еще не нашел пример, где Сообщение, полученное по подписке, могло бы быть разных типов, и тип должен быть известен, чтобы десериализовать его содержимое с правильным типом. Это связано , но это не предполагает сценарий
У меня есть сценарий publi sh -подписчиков. Для подписчика, чтобы создать Message
, который может быть опубликован с помощью библиотеки Azure Service Bus согласно https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-dotnet-how-to-use-topics-subscriptions, мне нужно передать массив байтов. Кажется, в нем нет ничего похожего на пользовательские метаданные, которые я мог бы использовать для указания типа сборки для сообщения или аналогичного.
Когда подписка получает сообщение, она должна десериализовать его, но я не могу знать, какой тип конкретное c сообщение для того, чтобы сделать JsonConvert.DeserializeObject<TDestType>(Encoding.UTF8.GetString(message.Body))
У кого-нибудь есть какая-либо ссылка или пример для достижения этой цели? Или рекомендуется использовать подписку topi c и подписку topi c только для одного типа сообщений? (Я сомневаюсь в этом, но я знаю, что MassTransit, например, создает topi c для каждого сообщения за кулисами ..)
UPDATE 1: сейчас я буду использовать свойство ContentType в сообщении хранить EventType так, чтобы suscriptor мог использовать его для десериализации. Но если он чувствует себя «хакером», потому что в этом поле предполагается хранить тип формата (json, xml, et c.)