【问题标题】:What serialization method is used for an ActiveMQ NMS C# object message?ActiveMQ NMS C# 对象消息使用什么序列化方法?
【发布时间】:2010-11-24 09:23:26
【问题描述】:

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

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

【问题讨论】:

    标签: c# .net activemq nms


    【解决方案1】:

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

    您可以设置自己的,例如

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

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

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

    【讨论】:

    • 关于二进制格式的向后兼容性有什么好的信息吗?删除/添加的字段会怎样?
    • 在实践中似乎(以我有限的经验)丢失的文件只是得到它们的默认值。不过,这种序列化与 NMS/ActiveMQ 无关。关于 stackoverflow 上的序列化有很多问题,请围绕这些问题进行讨论。
    猜你喜欢
    • 2011-03-07
    • 2011-11-22
    • 1970-01-01
    • 1970-01-01
    • 2012-05-16
    • 2018-02-20
    • 1970-01-01
    • 2015-07-05
    • 2014-08-13
    相关资源
    最近更新 更多