2

我计划使用 Apache NMS 进行 ActiveMQ 消息传递,并且想知道我发送的对象将使用什么序列化方法?XML/二进制?什么控制序列化以及如何自定义它?

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

4

1 回答 1

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 并以您喜欢的任何方式将您的对象序列化为消息。

于 2009-08-31T18:22:09.907 回答