如何解决C# XmlSerializer 显然忽略了 XmlTextAttribute 并在被序列化的对象的字符串属性中转义 XML 片段
我正在对一些旧的现有 .Net 4.6.1 代码进行故障排除,这些代码是 XML 序列化此类:
public class Orders
{
private int _pagenumber = 0;
[XmlAttribute]
public int pages
{
get { return _pagenumber; }
set { _pagenumber = value; }
}
[XmlText]
public string OrdersXml { get; set; }
}
OrdersXml
字符串包含一块已经 XML 序列化的 Order
对象(即 XML 文本,如:“<Order><OrderId>1</OrderId>...</Order><Order>...</Order>...
”)。 (出于各种原因,它们在其他地方被 XML 序列化,并且不会重新设计。)
目的是在此 Orders
对象的序列化中逐字包含该 XML 块 - 换句话说,就好像 string OrdersXml
是一个被序列化的 Orders[] OrdersXML
Orders
对象,最终类似于:<Orders pages="6"><Order><OrderID>123456</OrderID>...</Order>...</Orders>
但这并没有发生。 OrdersXml
属性中的 XML 被序列化为 XML 转义的纯文本,它出现“<Orders pages="6"><Order><OrderID>2</OrderID>...
” - 代码正在进行序列化后清理以扭转这种情况,并且它出现了有用的正确在大多数情况下。我宁愿它首先正确序列化...
我试过改用 [XmlText(typeof(string))]
但这没有用。
XmlSerializer 是否忽略了 [XmlText]
上的 OrdersXml
属性,或者这不是 [XmlText]
的目的?
像这样组合 XML 的“正确”最佳实践方法是什么?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。