2

すべてのパブリック プロパティをシリアル化する必要があり、プロパティが単純なオブジェクト (数値または文字列または既に実装されているオブジェクト)がある場合、作成する必要がなく、コンストラクタを毎回引数として取るISerializable簡単な方法はありますか?GetObjectData(SerializationInfo info, StreamingContext context)SerializationInfo

リフレクションを使用して手動で実行できることは知っていますが、.NET Framework 内にそれを行うための魔法の方法はありますか?


したがって、正しい答えは次のとおりです。

ISerializable を実装しようとしないでください。これはカスタム シリアル化用です。代わりに、クラス宣言の直前に [Serializable] 属性を追加してください。

4

1 に答える 1

4

BinaryFormatter クラスを試してください - 必要なことを行う必要があります

編集: BinaryFormatter から派生したものではありません。シリアライゼーションを行うために使用するユーティリティ クラスです。これはドキュメントからコピーされた例です

MyObject obj = new MyObject();
obj.n1 = 1;
obj.n2 = 24;
obj.str = "Some String";
IFormatter formatter = new BinaryFormatter();
Stream stream = new FileStream("MyFile.bin", FileMode.Create, FileAccess.Write, FileShare.None);
formatter.Serialize(stream, obj);
stream.Close();
于 2010-08-07T02:35:49.590 に答える