我正在构建一个Queue系统,我已经能够将一个对象发送到位于另一台服务器上的公共队列。 我无法弄清楚的是如何在接收器端重建对象(我的两端都有它的定义)。
有什么想法吗?
答案 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;