![](/img/trans.png)
[英]how do I filter Azure Service Bus Queue messages based on a message property?
[英]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.