2014-11-25 3 views
1

Я начинаю с ActiveMQ в C#. Я сериализую свой объект на json и отправляю его без проблем.Как добавить пользовательские свойства в сообщение с Apache.NMS.ActiveMQ (C#)?

Я бы добавил свойства к своему сообщению, но мне не удалось. Я видел setIntProperty (имя строки, значение int) на нескольких сайтах, но я не нахожу его на Apache.NMS.ActiveMQ (C#).

Вот мой код:

ActiveMQ mom = new ActiveMQ(); 
ISession session = mom.Initialize(); 
IDestination dest = session.GetQueue(queueDestination); 
using (IMessageProducer producer = session.CreateProducer(dest)) 
{ 
    foreach (Store s in stores) 
    { 
     List<string> matchKeyProductList = db.GetProductsKeyList(websiteNumberID); 
     ArrayList arCodesProdToUpdate = db.GetProductsToUpdate(websiteNumberID); 

     JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer(); 
     serializer.MaxJsonLength = Int32.MaxValue; //Augmentation de la propriété MaxJsonLenth 
     MessageObject message = new MessageObject(matchKeyProductList, arCodesProdToUpdate); 
     string jsonMessage = serializer.Serialize(message); 

     ITextMessage textMessage = producer.CreateTextMessage(jsonMessage); 
     producer.Send(textMessage); 
    } 
} 
mom.Cleanup(); 

Может кто-нибудь помочь мне пример, пожалуйста?

ответ

1

ITextMessage унаследовал от IMessage, у которого есть map of Properties, with several applicable set methods. Вы должны установить их следующим образом:

ITextMessage textMessage = producer.CreateTextMessage(jsonMessage); 
textMessage.Properties.SetInt("CustomInt", 1234); 
textMessage.Properties.SetString("CustomString", "HelloWorld"); 
producer.Send(textMessage); 
+1

Большое спасибо! Я не видел, что есть методы ниже Свойства ... – Seb

Смежные вопросы