我正在学习 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 时出现错误以及我做错了什么?
谢谢