19

BinaryWriter を使用して、かなり複雑な構造を byte[] 配列にシリアル化する方法は?

アップデート:

  • これが機能するには、すべての構造 (およびサブ構造?) を [Serializable] 属性で装飾する必要があります。

  • ISerializable インターフェイスを実装する必要はありません。これは、オブジェクトが独自のシリアル化を制御できるように設計されているためです。

4

3 に答える 3

33

BinaryFormatterを使用して、オブジェクトを byte[] にシリアル化します。BinaryWriterは、バイトをストリームに書き込むためだけのものです。

MyObject obj = new MyObject();
byte[] bytes;
IFormatter formatter = new BinaryFormatter();
using (MemoryStream stream = new MemoryStream())
{
   formatter.Serialize(stream, obj);
   bytes = stream.ToArray();
}
于 2011-09-16T08:49:06.973 に答える