【问题标题】:How to save a serializable object using File.WriteAllBytes?, C#如何使用 File.WriteAllBytes 保存可序列化对象?,C#
【发布时间】:2012-01-31 13:53:57
【问题描述】:

我需要保存一个可序列化的对象,但我不想使用 XML。 是否可以写入对象的原始字节,然后从磁盘读取它以再次创建对象?

感谢您的帮助!

【问题讨论】:

    标签: c# serialization save


    【解决方案1】:

    使用BinaryFormatter

    var formatter = new BinaryFormatter();
    
    // Serialize
    using (var stream = File.OpenWrite(path))
    {
        formatter.Serialize(stream, yourObject);
    }
    
    ...
    
    // Deserialize
    using (var stream = File.OpenRead(path))
    {
        YourType yourObject = (YourType)formatter.Deserialize(stream);
    }
    

    【讨论】:

    • 但是为了在项目之间传递对象,它们都需要驻留在公共程序集/命名空间中
    【解决方案2】:

    是的,它被称为二进制序列化。 MSDN 网站上有一些很好的例子:

    http://msdn.microsoft.com/en-us/library/4abbf6k0(v=vs.100).aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-20
      • 2019-02-10
      • 1970-01-01
      • 2020-07-28
      • 1970-01-01
      相关资源
      最近更新 更多