2014-02-26 82 views
0

我構建了一個隊列系統,並且能夠將對象發送到位於另一個服務器上的公共隊列。 我無法弄清楚的是如何在接收端重建對象(我在兩端都有它的定義)。檢索通過消息隊列發送的對象

任何想法?

+0

你能不能反序列化對象的序列化,你是把它以同樣的方式在隊列中? – ken2k

+0

我不序列化它,只是使用queue.Send(commObject,「Notification mail」); – MaPi

回答

1

看一看下面的MSDN例如:http://msdn.microsoft.com/en-us/library/y918yfy2(v=vs.110).aspx

基本上,調用queue.Send(object)序列化使用默認XmlMessageFormatter的對象。 所以你必須使用相同的序列化反序列化消息,並接收Message.Body的結果轉換到好的類型:

// Connect to the a queue on the local computer. 
MessageQueue myQueue = new MessageQueue(".\\myQueue"); 

// Set the formatter to indicate body contains an Order. 
myQueue.Formatter = new XmlMessageFormatter(new Type[] {typeof(MyProject.Order)}); 

// Receive and format the message. 
Message myMessage = myQueue.Receive(); 
Order myOrder = (Order)myMessage.Body; 
+0

如果我有不同格式的信息會怎麼樣? – MaPi

+1

@ user1648371您可以指定多種類型,請參閱http://stackoverflow.com/a/10798997/870604 – ken2k