3

とマークされた基本クラスがSerializableあり、派生クラスもマークされSerializableています。逆シリアル化中に基本クラスで何かをしたいので、 とマークされたメソッドを宣言しましたOnDeserializingが、このメソッドが派生クラスのメソッドの前に実行されることが重要ですOnDeserializing
派生クラスは、他の人によっても作成される場合があります。
基本クラスのメソッドが派生クラスのシリアル化メソッドの前に呼び出されることを信頼できますか?
私は使用するつもりSoapFormatterです。

4

1 に答える 1

2

私は手足に出て、おそらく他の目的でリフレクションを使用して見たものに基づいて、基本メソッドではなく派生メソッドを最初に見つけるだろうと言います。属性でマークされたメソッドの順序に依存するのではなく、子から基本動作を明示的に呼び出すことをお勧めします。下位レベルのオブジェクトが抽象的ではなく直接インスタンス化可能であり、そのため OnDeserializing マークの付いたメソッドもある可能性がある場合、そのレベルが既に処理されているかどうかを示すフラグを設定する必要がある場合があります。

于 2012-12-01T21:57:24.720 に答える