それらの型を使用して WPF でデータを表示すると、WCF mex エンドポイント ポイントを介して取得した型をシリアル化する際に問題が発生します。
これは、自動生成された型が INotifyPropertyChanged インターフェイスを実装し、WPF バインディングがそれにサブスクライブするためです。
これを行う通常の方法は、イベント宣言に [field: NonSerialized] を追加することです。クラスは自動生成されたので、私はこれをしたくありません。
また、DataContractSerializer に切り替えたくありません。これは、主に、他のすべての場合に使用している BinaryFormatter がかなり便利であるためです。
私がやりたいのは、リフレクションを使用してシリアル化を開始する前に、イベント データが格納されているフィールドを見つけて、それを NonSerialized としてマークすることです。
ここに私の質問があります:
- 実行時に属性を追加することは可能ですか?
- イベントに関連付けられたフィールドを見つけるにはどうすればよいですか?