![](/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.