在C#中序列化对象并获取字节流

我有一个对象,一个Serializable类的实例。 我想知道如何将这个对象作为字节流?

我知道我可以使用BinaryFormatter然后使用Serialize方法,但是这个方法需要一个serializationStream来编写序列化对象。 我希望能够在特定位置的文件/流中编写它,所以我想做类似的事情:

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

有什么方法可以做[*] ,取一个对象序列化的字节?

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