Mit dem Azure SDK vom Juni 2012 habe ich ein Servicebus-Thema, dem ich ein Abonnement hinzufüge.Wie Filtern einer ServiceBus-Thema-Subskription basierend auf einer integrierten Eigenschaft der BrokeredMessage-Klasse?
Ich möchte dieses Abonnement filtern. Wenn ich dies tun auf der Grundlage eines der Elemente, die ich in den BrokeredMessage Eigenschaften Tasche hinzugefügt haben, dann funktioniert das gut:
// 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();
Wenn jedoch muss ich das gleiche, aber die Filterwert zu einem der hinzufügen direkte Eigenschaften des BrokeredMessage Objekt, wie SessionId, dann dies fehlschlägt:
// 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();
wie kann ich ein SqlFilter konstruieren, die die integrierten Eigenschaften des BrokeredMessage Objekt (SessionId oder ReplyToSessionId oder Meldungs wird sich
?Ist das überhaupt möglich?
Genau das, was ich gesucht habe. Danke vielmals! – JcFx