【问题标题】:Serialize an object in C# and get byte stream在 C# 中序列化对象并获取字节流
【发布时间】:2013-03-22 22:09:53
【问题描述】:

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

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

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

我有什么办法可以通过[*] 获取对象序列化的字节数?

【问题讨论】:

  • 你能把它序列化成 MemoryStream 吗?然后只需抓取流的缓冲区。

标签: c# .net serialization deserialization


【解决方案1】:
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;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-08
    • 1970-01-01
    • 2014-12-07
    • 1970-01-01
    • 1970-01-01
    • 2017-01-31
    • 2011-04-25
    • 1970-01-01
    相关资源
    最近更新 更多