これは、他のトピックからの繰り返しの質問のように聞こえるかもしれませんが、インターフェイスの定義では延期されています。
IClass1という名前のインターフェイスがあり、その定義にはIClass2などのインターフェイスのリストが含まれています
このインターフェイスを実装するビジネス ユニットがあります。実装は当然このようになります
class Class1: IClass1
{
....whatever properties
List<IClass2> DataItems { get; set; }
}
class Class2:IClass2
{
...whatever properties
}
問題は、XmlSerializer
それがインターフェイスであるため、Class1 のリストについて不平を言うことです! したがって、私の質問は次のとおりです。単純に、DataItems リストで逆シリアル化する必要があるインスタンスの型が何であるかを常に知っています。これは Class2 型になります。XML シリアライザにそれを伝える方法は?
私は多くの回避策を見てきましたが、ダミーのプロパティを使用し、シリアル化/逆シリアル化プロセス中にインターフェイスのリストを無視することが最も適していると思います。クラスにシリアル化を実装する