基本クラスのオブジェクトの配列がありますMyBase
。これらのオブジェクトの一部は派生クラスのインスタンスであるため、この配列を使用してシリアル化しようとするとSystem.Xml.Serialization.XmlSerializer
、派生クラスに関する苦情が表示されて失敗します。System.InvalidOperationException:タイプDerivedClassは予期されていませんでした。XmlIncludeまたはSoapInclude属性を使用して、静的に認識されていないタイプを指定します。
派生クラスをシリアル化したくない[XmlIgnore()]
し、派生クラス(または[XmlInclude()]
基本クラス)に入れたくないのは間違いありません!
このようなメンバーのベースのみをシリアル化するように指示する方法はありXmlSerializer
ますか?
[XmlElement("Items")]
public MyBase[] Items
{
get
{
return items.ToArray();
}
set
{
items = new HashSet<MyBase>(value);
}
}