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

ins*_*ity 5 .net c# serialization deserialization

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

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

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

我有什么办法可以做[*]一个对象序列化的字节吗?

I4V*_*I4V 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;
}
Run Code Online (Sandbox Code Playgroud)