2013-04-01 66 views
5

我有一个对象,一个Serializable类的实例。我想知道如何将这个对象作为字节流?在C#中序列化一个对象并获取字节流

我知道我可以使用BinaryFormatter,然后使用Serialize方法,但是这种方法需要一个serializationStream它写入序列化对象。我希望能够把它写在某个位置的文件/流的,所以我想这样做:

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

有什么办法,我可以做[*],采取系列化的字节的一个对象?

+3

可以将它序列化为MemoryStream吗?然后抓住流的缓冲区。 – itsme86

回答

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; 
} 
+1

谢谢!这是我一直在寻找:) – insumity

相关问题