我打算将Apache NMS用于ActiveMQ消息传递,并且想知道在我发送的对象上将使用什么序列化方法? XML /二进制?什么控制序列化以及如何自定义它?
有没有人有使用C#对象的经验?你知道有什么陷阱吗?
答案 0 :(得分:4)
默认为IObjectMessage的System.Runtime.Serialization.Formatters.Binary.BinaryFormatter。
你可以通过例如自己设置
IObjectMessage m = session.CreateObjectMessage();
((ActiveMQObjectMessage)m).Formatter=new SoapFormatter();//Or any IFormatter
如果您没有使用默认的BinaryFormatter发送对象,则需要在接收方访问IObjectMessage.Body之前设置格式化程序。
如果您愿意,您也可以发送/接收IByteMessage / ITextMessage,并以您想要的任何方式自行将对象序列化为邮件。