为什么XML序列化程序将字符附加到我的XmlAttribute中
本文关键字:我的 XmlAttribute 字符 XML 序列化 程序 为什么 | 更新日期: 2023-09-27 18:24:13
这是我的属性:
/// <summary>
/// The Business Unit
/// </summary>
[XmlAttribute("ows_Business_x0020_Unit")]
public string BusinessUnit { get; set; }
当我对具有BusinessUnit的对象调用Serialize时,我得到:
ows_Business_x005F_x0020_Unit='"Hi'"
_x005F从哪里来?
这是一个转义序列。_x0020实际上是空间的另一个转义序列,所以它试图转义该转义序列,这样就不会混淆你想要的是转义序列,而不是unescape值。所以你的属性应该是这样的:
public class MyClass
{
[XmlAttribute("ows_Business Unit")]
public string BusinessUnit { get; set; }
}
这将把属性序列化为ows_Business_x0020_Unit
。
Microsoft将某些字符编码为_xZZZ_,因此任何看起来像_xZZZ__的名称都会被转义。他们选择通过搜索"_x"并将下划线编码为_x005F来处理此问题。
如果你不在名字里加"_x",你的生活会更轻松。