簡體   English   中英

Azure Service Bus屬性篩選器

[英]Azure Service Bus Property Filter

我試圖過濾來自ASB的消息,以便僅顯示具有特定值的特定屬性的消息。 我不確定這是不可能的,還是我的語法不正確。

這是我設置過濾器的方法:

var ruleDescriptions = rules as RuleDescription[] ?? rules.ToArray();
var filter = new SqlFilter("PropertyName='PropertyValue'");
if (ruleDescriptions.All(x=>x.Filter != filter))
        {
            _client.AddRule("FilterName", filter);
        }

在這種情況下,值是一個字符串。 運行此命令時,將收到具有該屬性所有不同值的事件。

我也嘗試過同樣的事情,但是在PropertyValue周圍沒有單引號沒有成功。 如何設置此過濾器?

經過進一步研究,我意識到我需要使用以下內容刪除默認過濾器:

    if (ruleDescriptions.Any(ruleDescription => ruleDescription.Name == "$Default"))
        {
            _client.RemoveRule("$Default");
        }

如果沒有同時添加其他規則,則在創建訂閱時會添加此默認規則。 在這種情況下,我不是我要訂閱的主題的所有者,而是為我創建了訂閱。 因此,已經添加了“ $ Default”規則並提取所有消息。

添加此內容后,上述過濾器將按預期方式工作-僅收到基於指定的PropertyValue的消息。

來源: http//azure.microsoft.com/en-us/documentation/articles/service-bus-dotnet-how-to-use-topics-subscriptions/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM