Korzystając z pakietu Azure SDK z czerwca 2012 r., Mam temat usługi magistrali usług i dodawam do niego subskrypcję.Jak filtrować subskrypcję tematu ServiceBus na podstawie wbudowanej właściwości klasy BrokeredMessage?
Chcę odfiltrować tę subskrypcję. Jeśli mogę to zrobić w oparciu o jeden z elementów, które zostały dodane do worka BrokeredMessage Właściwości, a następnie to działa prawidłowo:
// 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();
Jeśli jednak zrobić to samo, ale dodać wartość filtra do jednego z bezpośrednie właściwości obiektu BrokeredMessage, takie jak sessionid, to się nie powiedzie:
// 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();
Jak można skonstruować SqlFilter że zajmie się
wbudowanej właściwości obiektu BrokeredMessage (sessionid lub ReplyToSessionId lub komunikatu?Czy to jest możliwe?
Dokładnie tego, czego szukałem. Wielkie dzięki! – JcFx