2013-04-01 103 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

相關問題