2012年6月のAzureSDKを使用して、サービスバスのトピックがあり、それにサブスクリプションを追加しています。
そのサブスクリプションをフィルタリングしたいと思います。BrokeredMessageプロパティバッグに追加したアイテムの1つに基づいてこれを行うと、これは正常に機能します。
// 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オブジェクトの直接プロパティの1つにフィルター値を追加すると、失敗します。
// 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、またはMessageId)をアドレス指定するSqlFilterを構築するにはどうすればよいですか?
これも可能ですか?