#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. Круто, я попробую это сейчас и приму в качестве ответа, по крайней мере, он компилируется.