2012年6月のAzure SDKを使用して、私はサービスバスに関するトピックを持っており、サブスクリプションを追加しています。BrokeredMessageクラスの組み込みプロパティに基づいてServiceBusトピックサブスクリプションをフィルタリングする方法はありますか?
そのサブスクリプションをフィルタリングします。私はBrokeredMessageプロパティバッグに追加した項目のいずれかに基づいてこれを行う場合、これは正常に動作します:
// Send the message:
BrokeredMessage message = new BrokeredMessage(serializableObject);
message.Properties.Add("MySessionId", "GUID");
getTopicClient("MY_TOPIC").Send(message); // method creates client. omitted here.
// Retrieve it:
SqlFilter myFilter = new SqlFilter(@"(MySessionId = ""GUID"")");
namespaceManager.CreateSubscription("MY_TOPIC", "MY_SUB", myFilter);
SubscriptionClient client = getSubscriptionClient("MY_TOPIC", "MY_SUB"); // method creates client. omitted here.
// This will work fine:
Message newMessage = client.Receive();
場合は、しかし、私は同じことが、のいずれかにフィルタ値を追加しますなどのSessionIdとしてBrokeredMessageオブジェクトの直接プロパティ、これは失敗します。
// Send the message:
BrokeredMessage message = new BrokeredMessage(serializableObject);
message.SessionId = "GUID";
getTopicClient("MY_TOPIC").Send(message); // method creates client. omitted here.
// Retrieve it:
SqlFilter myFilter = new SqlFilter(@"(SessionId = ""GUID"")");
namespaceManager.CreateSubscription("MY_TOPIC", "MY_SUB", myFilter);
SubscriptionClient client = getSubscriptionClient("MY_TOPIC", "MY_SUB"); // method creates client. omitted here.
// This will never receive a message
Message newMessage = client.Receive();
私は内蔵のBrokeredMessageオブジェクトのプロパティ(のSessionId、またはReplyToSessionId、またはメッセージId
に対処しますSqlFilterを構築できますか?これも可能ですか?
私が探していたものです。どうもありがとう! – JcFx