【发布时间】:2014-01-30 20:42:36
【问题描述】:
我有一个继承自基类的类层次结构。我想从 XML 反序列化所有类型。文档说为此目的使用此构造函数:
XmlSerializer(Type type, Type[] extraTypes);
所以我做了这样的事情:
public class SomeBase { public string SomeProperty { get; set } }
public class SomeChild : SomeBase { public string SomeOtherProperty { get; set; } }
然后我创建 XmlSerializer 并尝试反序列化我的 XML:
XmlSerializer serializer = new XmlSerializer(typeof(SomeBase),
new Type[] { typeof(SomeChild) });
SomeBase deserialized = (SomeBase)serializer.Deserialize(new StringReader(myXml));
我得到 InvalidOperationException 说:
"<SomeChild xmlns=''> was not expected."
我该如何解决这个问题?
更新 这是我的 XML:
// Works fine:
<?xml version=\"1.0\" encoding=\"UTF-8\" ?>
<SomeBase>
<SomeProperty>some value</SomeProperty>
</SomeBase>
// InvalidOperationException:
<?xml version=\"1.0\" encoding=\"UTF-8\" ?>
<SomeChild>
<SomeProperty>some value</SomeProperty>
<SomeOtherProperty>some other value</SomeOtherProperty>
</SomeChild>
【问题讨论】:
-
你的 xml 文件是什么样的?