このようなコレクションのxmlファイルがあります
<AbstractCollection>
<ConcreteA name="Bob" age="4"/>
<ConcreteB name="Tree" size="1" />
</AbstractCollection>
具体的なコレクションを使用する場合(つまり、2つの要素が同じタイプである場合)、C#で標準のXML逆シリアル化を使用するのは簡単です。タイプが異なると、それがより難しくなるようです。
これを取り除くために単純なxml逆シリアル化を使用する方法はありますか、それとも自分で逆シリアル化を実装する必要がありますか?
[わかりやすくするために追加]xmlは既に存在し、変更できないことを追加する必要があります。上記のような形式のメッセージをxmlで受信しています。より具体的な例は次のとおりです。
<Actions>
<Walked name="Bob" distance="4"/>
<Cycled name="Jane" gear="3rd" />
</Actions>
最終的には、「Cycled」オブジェクトと「Walked」オブジェクトになります。ああ、そしてそれをさらに楽しくするために、順序は重要です。
また、コードでXmlInclude属性を使用しようとしましたが、シリアル化するときにxmlを変更することで機能します(もちろん間違って使用していない限り)。