Con el SDK de Azure de junio de 2012, tengo un tema de bus de servicio y le agrego una suscripción.Cómo filtrar una suscripción al tema ServiceBus basada en una propiedad incorporada de la clase BrokeredMessage?
Quiero filtrar esa suscripción. Si hago esto sobre la base de uno de los artículos que he añadido a la bolsa BrokeredMessage Propiedades, a continuación, esto funciona bien:
// 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();
Sin embargo, si hago lo mismo, pero añade el valor de filtro a una de las propiedades directas del objeto BrokeredMessage, como SessionId, entonces esto falla:
// 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();
¿Cómo puedo construir un SqlFilter que se ocupará de la incorporada en las propiedades del objeto BrokeredMessage (sessionId o ReplyToSessionId o IdMensaje
?¿Esto es posible?
Exactamente lo que estaba buscando. ¡Muchas gracias! – JcFx