令人惊讶的是,但我还没有找到一个示例,其中订阅时收到的消息可能是不同类型的,并且需要知道类型才能使用正确的类型反序列化其内容。这是相关的,但它没有考虑这种情况
我有一个发布订阅者场景。对于订阅者,根据https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-dotnet-how-toMessage
创建可以使用 Azure 服务总线库发布的-use-topics-subscriptions
我需要传递一个字节数组。它似乎没有任何类似自定义元数据的东西,我可以用它来指定消息或类似的程序集类型。
当订阅收到消息时,它必须反序列化它,但我不知道具体消息是哪种类型才能做JsonConvert.DeserializeObject<TDestType>(Encoding.UTF8.GetString(message.Body))
有没有人有任何链接或样本来实现这一目标?还是推荐的做法是仅将主题和主题订阅与一种类型的消息一起使用?(我对此表示怀疑,但我知道 MassTransit 例如在幕后为每条消息创建一个主题..)
更新 1:现在我将使用 Message 中的 ContentType 属性来存储 EventType,以便订阅者可以使用它来反序列化。但是如果感觉“hacky”,因为该字段应该存储格式类型(json、xml 等)