【问题标题】:Working with C# Object on Disk使用磁盘上的 C# 对象
【发布时间】:2011-08-09 14:10:21
【问题描述】:

我了解序列化的工作原理,并且想知道是否有办法将对象存储在磁盘上并使用该对象并保存更改。

我试图避免直接这样做:

  1. 打开文件
  2. 反序列化对象
  3. 更改对象
  4. 通过覆盖旧文件序列化更改

是否有一个类允许将文件用作对象存储,即 List 并直接在磁盘上使用它而无需完成上述过程?

【问题讨论】:

  • 因为它效率低下....尝试每次加载和反序列化 400mb 的数据,只是为了将一个对象添加到列表中。
  • 即使你设法做到了,这也是幕后发生的事情,因为这就是计算机的工作原理
  • 如果是列表,为什么不用db呢?
  • @Jeff 您可以将序列化的位存储在数据库中
  • @Jeffrey 只是使用隐藏的 SQLite 数据库,DBA 甚至都不知道它:)

标签: c# serialization object


【解决方案1】:

试试DB4O。这似乎是满足您要求的解决方案。

【讨论】:

  • 这看起来非常棒!谢谢维杰!
  • 干杯! SQLite 也可以帮助您(我将该建议作为评论添加到您的原始帖子中。
【解决方案2】:

我不相信有一个开箱即用的解决方案。只需搜索如何将任意数据保存在文件中,然后想出自己的格式。

【讨论】:

    【解决方案3】:

    您可能想查看 Windows 附带的 ESE 之类的内容。 There is a managed interface for it。不过没用过。

    要么使用轻量级数据库,要么使用轻量级数据库,例如SQLite,因为实际上,如果你想在磁盘上添加、删除和修改数据,你需要某种数据库。

    【讨论】:

      【解决方案4】:

      Objectivity 是另一种选择。它支持跨庞大的分布式网络或嵌入在绝对不会失败的独立设备中的计算,支持持久的对象管理,几乎瞬时遍历复杂的多对多关系和图形等等。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-12-25
        • 2015-01-19
        • 2013-04-03
        • 2013-05-23
        • 2017-06-01
        • 2017-10-19
        • 2020-05-12
        • 1970-01-01
        相关资源
        最近更新 更多