Проверьте, имеет ли сообщение Azure свойство

#c# #azure

#c# #azure

Вопрос:

Я добавил некоторые пользовательские свойства в azure BrokeredMessage

Например, сообщение.Свойства[«StaffDealingWith»];

Я хочу выяснить, содержит ли сообщение определенное свойство (например, StaffDealingWIth).

 if (message.Properties.Contains("StaffDealingWith"))
{
   tm.StaffDealingWith = (string)message.Properties["StaffDealingWith"];
}
 

Однако это приводит к ошибке компиляции.
‘Система.Коллекции.Общий.ICollection>.Содержит(System.Коллекции.Generic.KeyValuePair)’ имеет некоторые недопустимые аргументы c:CodeTfsArklePosArkleRoboWeb .AzureMessageFetcher.cs 180 17 RoboWeb.Azure

Тип сообщения — Microsoft.Служебная шина.Обмен сообщениями.BrokeredMessage

Ответ №1:

Вы не указываете, что это за тип message , но я бы подозревал message.Properties , что это a Dictionary<string, object> , поэтому вам нужно использовать ContainsKey вместо этого.

Dictionary<string, object> реализует ICollection<KeyValuePair<string, object>> , поэтому он Contains также предоставляет метод!

Комментарии:

1. Дин, я только что отредактировал свой вопрос, чтобы указать тип. Я хочу проверить, имеет ли сообщение свойство «StaffDealingWith» или это свойство не существует. Меня не интересует значение на этом этапе.

2. Правильно, поэтому вы хотите проверить, содержит ли оно ключ ‘StaffDealingWith’ — use ContainsKey

3. Круто, я попробую это сейчас и приму в качестве ответа, по крайней мере, он компилируется.