2
我打算使用Apache NMS进行ActiveMQ消息传递,并且想知道在我发送的对象上将使用哪种序列化方法? XML /二进制?什么控制序列化,我如何定制它?什么序列化方法用于ActiveMQ NMS C#对象消息?
有没有人有与C#对象做这个经验?你知道有什么陷阱吗?
我打算使用Apache NMS进行ActiveMQ消息传递,并且想知道在我发送的对象上将使用哪种序列化方法? XML /二进制?什么控制序列化,我如何定制它?什么序列化方法用于ActiveMQ NMS C#对象消息?
有没有人有与C#对象做这个经验?你知道有什么陷阱吗?
IObjectMessage的默认值为System.Runtime.Serialization.Formatters.Binary.BinaryFormatter。
你可以通过例如自己设置。
IObjectMessage m = session.CreateObjectMessage();
((ActiveMQObjectMessage)m).Formatter=new SoapFormatter();//Or any IFormatter
您将需要在接收端访问IObjectMessage.Body如果你不使用默认的BinaryFormatter发送对象之前设置的格式。
如果您愿意,您还可以发送/接收IByteMessage/ITextMessage,并以任何您喜欢的方式将对象序列化为消息。
任何关于二进制格式向后兼容性的好信息?删除/添加字段会发生什么情况? – TheSoftwareJedi 2009-08-31 18:31:55
似乎在实践中(在我有限的经验atleat)缺少fileds只是得到他们的默认值。但是这个序列化与NMS/ActiveMQ无关。有很多关于在stackoverflow上进行序列化的问题,都围绕着这些问题。 – nos 2009-08-31 19:32:28