我有一个对象,Serializable
类的实例。我想知道如何将这个对象作为字节流?
我知道我可以使用BinaryFormatter
然后使用Serialize
方法,但此方法需要serializationStream
来编写序列化对象。我希望能够在特定位置的文件/流中编写它,所以我想做类似的事情:
obj = new Something(); // obj is serializable
byte[] serialized = obj.serialize(); [*]
file.write(position, serialized)
有什么方法可以用[*]
来获取对象序列化的字节数?
答案 0 :(得分:12)
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;
}