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属性。
这可能吗?
答案 0 :(得分:0)
如果元素处于固定顺序,则可以执行此操作。有关详细信息,请参阅Deserialize multiple XML elements with the same name through XmlSerializer class in C#。
否则,你不能这样做。如果你这样做:
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'”。问题是没有必要加载类型,它正在写出来。