シリアル化可能としてマークされていないオブジェクトによってイベントが処理されると、シリアル化が失敗するため、イベントクラスメンバーのシリアル化を回避する必要があります。
EventクラスメンバーでNonSerialized属性を使用しようとしましたが、コンパイルに失敗します。このコード行:
<NonSerialized()> Public Event PropertyValueChanged()
次のエラーが発生します。
この宣言タイプでは属性が無効であるため、属性'NonSerializedAttribute'を'PropertyValueChanged'に適用できません。
Public Event PropertyValueChanged() ' compiles but needs the extra handling described below
イベントメンバーのシリアル化を回避する別の方法はありますか?
イベントが処理されない場合、これは問題ではありません。オブジェクトをシリアル化する前に、オブジェクトのクローンを作成する(そしてイベントを無視する)ことで回避できます。もっと良い方法があるかどうか疑問に思っています。
ありがとう。