11
使用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();
但是,如果我這樣做,但過濾器值增加的一個在BrokeredMessage對象的直接屬性,如會話ID,那麼這個失敗:
// 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();
我怎樣才能構建一個名爲sqlfilter,將解決內置(的SessionID,或ReplyToSessionId,或的MessageId的BrokeredMessage對象的屬性
?這可能嗎?
正是我在找什麼。非常感謝! – JcFx