【发布时间】:2019-10-19 04:03:49
【问题描述】:
我正在学习 XML 序列化并遇到一个问题,我有两个课程
[System.Xml.Serialization.XmlInclude(typeof(SubClass))]
public class BaseClass
{
}
public class SubClass : BaseClass
{
}
我正在尝试将 SubClass 对象序列化为 XML 文件,我使用打击代码
XmlSerializer xs = new XmlSerializer(typeof(Base));
xs.Serialize(fs, SubClassObject);
我注意到序列化成功了,但是 XML 文件有点像
<?xml version="1.0"?>
<BaseClass xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="SubClass">
...
</Employee>
如果我使用
XmlSerializer xs = new XmlSerializer(typeof(Base));
SubClassObject = xs.Deserialize(fs) as SubClass;
我注意到它会抱怨 xsi:type is unknown attribute(我注册了一个事件),尽管嵌入在 XML 中的所有信息都已成功解析并且 SubClassObject 中的成员已正确恢复。
有人知道为什么在解析 xsi:type 时会出错以及我做错了什么吗?
谢谢
【问题讨论】:
标签: c# xml-serialization xmlserializer