1

私はこれらの3つのクラスを持っています:

Class Image : Asset
Class Sound : Asset
Class Video : Asset

すべてが正常にシリアル化されますが、このアイテムを作成すると:

Class Master
List<Asset> assets //property

たとえば、このクラスのインスタンス:

Image i = new Image();
Sound s = new Sound();
Video v = new Video();
Master m =  new Master( new List<Asset>{i,s,v} )

例外「InvalidOperationException-XML ドキュメントの生成中にエラーが発生しました」および innerException でシリアル化されません: {「タイプ MyApplication.Video は予期されていませんでした。XmlInclude または SoapInclude 属性を使用して、静的に認識されていないタイプを指定してください。」 }

.. 何か案が??

4

1 に答える 1

6

クラスにXmlInclude属性を追加します。Asset

[XmlInclude(typeof(Video))]
[XmlInclude(typeof(Sound))]
[XmlInclude(typeof(Image))]
public class Asset
{
    ...
}
于 2013-03-01T14:26:58.627 に答える