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 に答える