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 都会出现。所以我必须将任何标签或任何 1 分配给 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 回答