2013-04-01 2 views
5

개체가 인스턴스 인 Serializable 클래스입니다. 이 개체를 바이트 스트림으로 가져올 수있는 방법이 궁금합니다.C#에서 개체를 serialize하고 바이트 스트림을 가져옵니다.

BinaryFormatter을 사용하고 Serialize 메서드를 사용할 수 있지만이 메서드는 serializationStream을 사용하여 serialize 된 개체를 씁니다.

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

관련 문제