0

Xml 1:

<Test><Anything>12345</Anything></Test>

Xml 2:

<Test><Anything1>test123</Anything1></Test>

Class Test
{
    [XmlElement("Anything" or "Anything" )]
    public string Sample { get; set; }
}

私の場合、xmlのいずれかが来るでしょう。したがって、AnythingタグまたはAnything1のいずれかをSampleプロパティに割り当てる必要があります。

これは可能ですか?

4

1 に答える 1

0

要素が固定された順序である場合、それを行うことができます。詳細については、C#のXmlSerializerクラスを使用して同じ名前の複数のXML要素を逆シリアル化するを参照してください。

そうでなければ、あなたはそれを行うことができません。もし、するなら:

public class Test
{
    [XmlElement("Anything")]
    [XmlElement("Foo")]
    public string Sample { get; set; }
}

...

Test test = new Test { Sample = "test" };
XmlSerializer xmlSerializer = new XmlSerializer(typeof(Test));

InvalidOperationException「タイプ'AntlrTest.Program.Test'を反映するエラーが発生しました」というメッセージがスローされます。タイプをロードする必要はありません、それはそれを書き出すことです。

于 2012-09-12T12:22:07.487 に答える