问题描述
我正在对一些旧的现有 .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 (将#修改为@)