7

Serializableクラスのインスタンスであるオブジェクトがあります。どうすればこのオブジェクトをバイト ストリームとして取得できるのでしょうか?

BinaryFormatterメソッドを使用してから使用できることはわかっていますSerializeが、このメソッドはserializationStreamシリアライズされたオブジェクトを書き込む場所を取ります。特定の位置のファイル/ストリームに書き込めるようにしたいので、次のようなことをしたいと思います:

obj = new Something(); // obj is serializable 
byte[] serialized = obj.serialize(); [*]
file.write(position, serialized)

[*]オブジェクトのシリアル化のバイトを取得する方法はありますか?

4

1 に答える 1

13
MemoryStream m = new MemoryStream();
var formatter = new BinaryFormatter();
formatter.Serialize(m, new MyClass() {Name="SO"});
byte[] buf = m.ToArray(); //or File.WriteAllBytes(filename, m.ToArray())


[Serializable]
public class MyClass
{
    public string Name;
}
于 2013-04-01T19:23:48.667 に答える