この質問は私の質問と非常に似ているかもしれませんが、必要な答えがわかりません。という名前のクラスCASM
があり、List<Action>
. このクラスをシリアライズしたい (BinaryFormatter
または同様のものを使用して)。このクラスと で参照されているすべてのクラスは、Action
正しい属性[Serializable]
を持っています。[NonSerializable]
シリアル化が試行されたときに問題が発生します-次のエラーが発生します:
Type 'CASM.CASM+<>c__DisplayClass2c' in Assembly 'CASM, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null' is not marked as serializable.
これ<>c__DisplayClass2c
は、アプリケーションで使用しているさまざまな種類の匿名デリゲートを保持する、自動生成された内部クラスです。ただし、下の画像からわかるように、そうではありません[Serializable]
。
代替テキスト http://bayimg.com/image/maebbaacj.jpg
これが機能するようにアプリケーションを変更する最良の方法は何ですか? 独自の<>c__DisplayClass2c
型クラスを作成し、シリアライズ可能にしますか? それとももっと良い方法がありますか?
編集:最後に、自動生成されたクラスではなく、独自のクラスを作成しました。デバッグにも役立ちます。実際には、単にb__12()
.