Ссылка на UserProperties сообщения из SQLFilter - PullRequest
0 голосов
/ 02 июля 2019

Я пытаюсь фильтровать сообщения для своих клиентов подписки в служебной шине Azure.Я хотел бы проверить, если свойство не существует или свойство имеет определенное значение.Вот как я добавляю фильтр:

var rules = await subscriptionClient_.GetRulesAsync();
if (!rules.Any(r => r.Name == "FilteringRule"))
{
    var filter = new SqlFilter($"sys.CustomProperty='{CustomValue}' OR sys.CustomProperty IS NULL");
    await subscriptionClient_.AddRuleAsync("FilteringRule", filter);
}

И то же значение передается объекту Microsoft.Azure.ServiceBus.Message:

Message msg = new Message();
msg.UserProperties.Add("CustomProperty", "CustomValue");

Проверка его в проводнике служебной шиныпоказывает, что сообщение действительно имеет свойство.

Я пытаюсь выяснить, как фильтровать подписки программно, а не по шаблонам ARM.

1 Ответ

1 голос
/ 02 июля 2019

Причина, по которой фильтр не работает, потому что вы пытаетесь обработать custom properties как system properties. Пожалуйста, попробуйте изменить выражение фильтра на:

var filter = new SqlFilter($"CustomProperty='{CustomValue}' OR CustomProperty IS NULL");

и все должно работать. Обратите внимание, что я удалил префикс sys. из выражения вашего фильтра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...