如何告诉 MessageQueue.SendMessageConnection 如何“XMLize”要发送的对象?
Posted
技术标签:
【中文标题】如何告诉 MessageQueue.SendMessageConnection 如何“XMLize”要发送的对象?【英文标题】:How to tell MessageQueue.SendMessageConnection how to "XMLize" the object to be sent? 【发布时间】:2021-09-08 03:03:11 【问题描述】:我正在使用 C# 使用 System.Messaging.MessageQueue.SendMessageConnection
发送一个包含一些参数的对象,例如:
_sendQueue.Send(myObject, ...);
我的myObject
是一个对象,包含一些属性,例如Field1
。
我正在检查我的消息是如何发送的,使用:
计算机管理 服务和应用程序 消息队列 私有队列 打开右侧队列,在“队列消息”中,右键单击并勾选“属性”、“正文”。我看到如下标签:
<Field1>content_Field1</Field1>
而不是这个,我想看到类似的东西:
<F1>content_Field1</F1>
我的对象中的属性和我想使用的 XML 标记之间是否有简单的映射关系?
提前致谢
【问题讨论】:
参见:Control XML serialization using attributes - 您可以使用类属性上的属性来控制元素命名。 @Fildor:我检查了 URL 并进行了第一次测试,它看起来很棒。请把它写成答案,以便我接受。 【参考方案1】:这实际上很容易做到。查看Control XML serialization using attributes :
默认情况下,XML 元素名称由类或成员名称确定。在一个名为 Book 的简单类中,一个名为 ISBN 的字段将生成一个 XML 元素 tag ,如下例所示。
public class Book
public string ISBN;
// When an instance of the Book class is serialized, it might
// produce this XML:
// <ISBN>1234567890</ISBN>.
如果您想给元素一个新名称,可以更改此默认行为。以下代码显示了属性如何通过设置 XmlElementAttribute 的 ElementName 属性来实现此功能。
public class TaxRates
[XmlElement(ElementName = "TaxRate")]
public decimal ReturnTaxRate;
- 截至 2017 年 3 月 30 日的微软文章,不同作者(我强调)
整篇文章大约需要 6 分钟的阅读时间,我非常推荐它。
【讨论】:
以上是关于如何告诉 MessageQueue.SendMessageConnection 如何“XMLize”要发送的对象?的主要内容,如果未能解决你的问题,请参考以下文章