【问题标题】:serialize objects to transfer into the messagequeue instance序列化对象以传输到消息队列实例
【发布时间】:2015-11-30 06:52:21
【问题描述】:

我在浏览 system.messaging 命名空间的 msdn 帖子时遇到了关于对象序列化的疑问。我想知道,为了通过 MessageQueue 实例传输,该对象必须是 xmlserializable 始终很重要。

其次,如果我们正在调用 MessageQueue.Send 成员,这也意味着我们正在使用默认的 System.Messaging.XmlMessageFormatter。

解释将不胜感激。

谢谢

【问题讨论】:

    标签: c# .net system.messaging


    【解决方案1】:

    你不必使用xml,你可以像这样使用BinaryMessage

       BinaryMessageFormatter formatter = new BinaryMessageFormatter();
       System.Messaging.Message message = new System.Messaging.Message(YourObject, formatter);
    

    其次,xml 消息是默认的,虽然我一直使用二进制,但 xml 对于几乎所有类型的场景来说都是笨重的。

    【讨论】:

    • 在我的第一个疑问中,我主要关心的是在将对象传输到消息队列之前对其进行序列化是否很重要。另外,在访问下一个条目之前必须从队列中删除第一个条目是否很重要
    • 您必须以某种方式进行序列化,因为它存储在应用程序范围之外。它可以被 .net C# 以外的其他技术使用,尽管这并不常见。
    • 感谢您的回答。您能否指导我完成上一条评论的第二部分
    • 我浏览了该链接并阅读了 msdn 文档。总而言之,如果您使用带有消息队列实例的接收方法,您已经阅读了消息,并且消息将从队列中删除,而使用 peek 方法您只是在阅读消息。因此,在前一种情况下,消息从队列中删除,现在您可以访问其他消息,但在后一种情况下,消息没有被删除,而不是您将如何获取其他消息
    猜你喜欢
    • 2014-07-08
    • 1970-01-01
    • 2018-07-18
    • 1970-01-01
    • 1970-01-01
    • 2013-08-24
    • 2017-01-16
    • 2012-10-26
    • 1970-01-01
    相关资源
    最近更新 更多