Используя Azure Service Bus, существует ли способ записи на брокерское сообщение, откуда возникло это сообщение? Хотя я мало функционального использования, я вижу, что это полезный инструмент для DevOps, если вы устраняете проблему.Идентификация происхождения сообщения в ESB
Например, представьте сообщение UpdateCustomer
, которое может быть опубликовано как из биллинговых, так и для CRM-приложений на одном ESB.
Я думал о префиксе BrokeredMessage.MessageId
с именем приложения, но это кажется довольно взломанным. Есть ли лучший способ записать происхождение сообщения?
Решение
Благодаря Gaurav Мантри за ответ, я пошел и реализован метод расширения на BrokeredMessage
объекта, чтобы для добавления словаря пользовательских свойств:
Использование
BrokeredMessage message = new BrokeredMessage();
var customMessageProperties = new CustomMessageProperties()
{
MessageOrigin = this.PublisherName,
};
message.AddCustomProperties(customMessageProperties.AllCustomProperties);
И метод расширения
public static class BrokeredMessageExtensionMethods
{
public static void AddCustomProperties(this BrokeredMessage brokeredMessage, Dictionary<string, string> properties)
{
foreach (var property in properties)
{
brokeredMessage.Properties.Add(property.Key, property.Value);
}
}
}
Надеюсь, это может помочь кому-то.
Вы можете попробовать собственные свойств на посредничестве сообщения, которое получает список пар имя/значение: https://msdn.microsoft.com/en-us/library/microsoft. servicebus.messaging.brokeredmessage.properties.aspx. –
Хорошо ли работает! Если вы хотите написать это как ответ, я приму это. – MrDeveloper