检索通过消息队列发送的对象

时间:2014-02-26 16:34:30

标签: c# message-queue remoteobject

我正在构建一个Queue系统,我已经能够将一个对象发送到位于另一台服务器上的公共队列。 我无法弄清楚的是如何在接收器端重建对象(我的两端都有它的定义)。

有什么想法吗?

1 个答案:

答案 0 :(得分:4)

查看以下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;