什么序列化方法用于ActiveMQ NMS C#对象消息?

我打算将Apache NMS用于ActiveMQ消息传递,我想知道在我发送的对象上将使用什么序列化方法? XML /二进制? 什么控制序列化以及如何自定义?

有没有人有使用C#对象的经验? 你知道有什么陷阱吗?

默认值为IObjectMessage的System.Runtime.Serialization.Formatters.Binary.BinaryFormatter。

你可以通过例如自己设置

IObjectMessage m = session.CreateObjectMessage(); ((ActiveMQObjectMessage)m).Formatter=new SoapFormatter();//Or any IFormatter 

如果您没有使用默认的BinaryFormatter发送对象,则需要在接收方访问IObjectMessage.Body之前设置格式化程序。

如果您愿意,您还可以发送/接收IByteMessage / ITextMessage,并以您想要的任何方式自行将对象序列化为消息。