2009-08-10 7 views
1

カスタムシリアル化用のISerializableインターフェイスを実装しているクラスがあります。これはこのクラスのプロパティには効果的ですが、クラスは派生クラスです。私が実行している問題は、基本クラスのプロパティが私のためにシリアル化されていないということです。基本クラスにはシリアライズ可能な属性がありますが、ISerializableは実装されていません。派生クラスのISerializable .GetObjectDataメソッドでそれらをすべて手動で追加することなく、基本クラスのプロパティをシリアル化する方法はありますか?基本クラスのプロパティのカスタムシリアル化

答えて

4

私が述べたようにMSDN

から、それはタイプがタイプのインスタンスがシリアル化され、直列化復元取得する方法を完全に制御を取ることができるため、ISerializableインターフェイスは非常に強力です。 この電力はコストがかかります。型は現在、基底型のフィールドのすべてを直列化する責任があります()。基本型がISerializableインタフェースも実装している場合は、基本型のフィールドを直列化するのは簡単です。基本型のGetObjectDataメソッドを呼び出すだけです。あなたは、シリアライゼーションを制御する必要があるが基本型がISerializableインタフェースを実装しない型を定義していることがあります。この場合、クラスはベースタイプのフィールドを手動でシリアル化する必要があります。
関連する問題