私は XML シリアライゼーションを学んでいて、問題に遭遇しました。私は 2 つのクラスを持っています。
[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;
XML に埋め込まれたすべての情報が正常に解析され、SubClassObject のメンバーが正しく復元されたにもかかわらず、xsi:type is unknown attribute (イベントを登録しました) と不平を言うことに気付きました。
xsi:type の解析でエラーが発生する理由と、私が間違ったことをした理由は誰にもわかりますか?
ありがとう