4

这是我的财产:

    /// <summary>
    /// The Business Unit
    /// </summary>
    [XmlAttribute("ows_Business_x0020_Unit")]
    public string BusinessUnit { get; set; }

当我对具有 BusinessUnit 的对象调用 Serialize 时,我得到:

 ows_Business_x005F_x0020_Unit=\"Hi\"

_x005F 来自哪里?

4

2 回答 2

3

这是一个转义序列。_x0020 实际上是空间的另一个转义序列,所以它试图转义转义序列,这样就不会混淆你真的想要转义序列,而不是 unescape 值。所以你的属性应该是这样的:

public class MyClass
{
     [XmlAttribute("ows_Business Unit")]
     public string BusinessUnit { get; set; } 
}

这会将属性序列化为ows_Business_x0020_Unit.

于 2013-07-22T18:49:53.700 回答
1

Microsoft 将某些字符编码为 _xZZZ_,因此任何看起来像 _xZZZ_ 的名称都会被转义。他们选择通过搜索“_x”并将下划线编码为 _x005F 来处理这个问题。

如果您避免在任何名称中包含“_x”,您的生活会更轻松。

于 2013-07-22T18:50:31.303 回答