在c#中序列化一个对象并获得字节流

本文关键字:字节流 一个对象 序列化 | 更新日期: 2023-09-27 18:07:00

我有一个对象,Serializable类的实例。我想知道你怎么能得到这个对象作为字节流?

我知道我可以使用BinaryFormatter,然后使用Serialize方法,但是这个方法使用serializationStream,它写入序列化对象。我希望能够将其写入文件/流中的特定位置,所以我想这样做:

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

是否有任何方法我可以做[*],采取一个对象的序列化字节?

在c#中序列化一个对象并获得字节流

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