私は[Synchronization]属性でスレッドセーフにした小さなクラスを持っていますが、ContextBoundObjectインターフェイスも実装しています。このクラスを[Serializable]にしたいと思います。コードはコンパイルされますが、私はシリアライズ可能と同期
System.Runtime.Remoting.RemotingException: Remoting cannot find field '__identity' on type 'System.MarshalByRefObject'
例外を受け取ります。私は[同期]でマークされたクラスはいくつかの 'リモート'プロキシ経由でアクセスされていることを知っていましたが、デフォルトのシリアル化メカニズムがうまく動作することを期待しました。
これは小さなアプリケーションです。クラスは実際のリモーティングが行われないように、メモリ内シーケンス(整数ID)ジェネレータです。私は他の手段(キーワードをロックする)で同期することができると思いますが、私はこの問題の標準的な解決策が何であるか知りたいと思います。
最後に更新:私は[シンクロナイゼーション]属性を放棄して、基本的なシリアライゼーションを使用しました。