的阵列我有像这样的列表的XML文件:xml元素列表,以共同的基本类型
<TestFile>
<string>Foo</string>
<bool>false</bool>
<bool>true</bool>
<string>Bar</string>
</TestFile>
我想将其反序列化到类型的数组“值”。该类型有两个子类型“ValueString”和“ValueBool”:
[XmlRoot("TestFile")]
public class TestFile
{
public List<Test> Tests;
}
public class Value
{
}
public class ValueString : Value
{
[XmlText]
public string Value;
}
public class ValueBool : Value
{
[XmlText]
public bool Value;
}
我想不出如何做到这一点。我试过XmlIncludeAttributes,但它不够,因为元素名称与类名称不匹配。我试过XmlChoiceIdentifier,但我发现的例子在编辑时不能编译...
我需要保留元素的顺序,因此将元素分成两个列表将不起作用。我也不能更改xml结构,因为它来自外部源。显然,这只是一个例子 - 我真正的类型比较复杂......
个人而言,我建议您编写自己的xml解析代码,因为xml序列化实际上并不是用来读取xml的一种方式。 – juharr 2011-04-11 13:29:10