【问题标题】:Easiest way to serialize and store objects in c#?在 C# 中序列化和存储对象的最简单方法?
【发布时间】:2011-10-06 20:44:08
【问题描述】:

我正在寻找一种简单的解决方案来序列化和存储包含配置、应用程序状态和数据的对象。它是一个简单的应用程序,它的数据不多。速度不是问题。我希望它正在进行中。我希望它在文本编辑器中比 xml 更易于编辑。

我找不到任何可以在进程中处理它的 .net 文档数据库。 简单地序列化为 xml 我不确定我是否想要这样做,因为它... xml。 序列化为 JSON 似乎非常特定于 javascript,我不会在 javascript 中使用这些数据。

我认为有非常巧妙的方法可以做到这一点,但 atm 我倾向于使用 JSON,尽管它有 javascript inclenation。

【问题讨论】:

  • “我找不到任何可以在进程中处理它的 .net 文档数据库” - 你是什么意思?正在进行中让我感到困惑..
  • 看看 MongoDB,它需要运行一个单独的进程来处理数据请求。我宁愿跳过让另一个进程运行,并且能够在同一个进程中拥有一切。
  • 好的,所以可能在我的回答中,第二个选项可以成为您的选择之一。

标签: c# .net serialization storage poco


【解决方案1】:

仅仅因为“JSON”它是 JavaScript Object Notation 的首字母缩略词,与它是否适合您的数据格式无关。 JSON 是轻量级的、基于文本的、易于人类阅读/可编辑的,尽管名称如此,但它是一种与语言无关的格式。

我肯定倾向于使用它,因为它听起来非常适合您的情况。

【讨论】:

    【解决方案2】:

    我会给出几个选择:

    1. 二进制序列化:取决于对象的内容,如果你有复杂的依赖树,它可能会在序列化时产生问题。它也不是很灵活,因为微软提供的标准二进制序列化也存储了保存类型信息。这意味着如果您将一个类型保存在二进制文件中,并且在一个月后决定重新组织您的代码并假设将同一个类移动到另一个命名空间,那么在从先前保存的二进制文件反序列化时它将失败,因为类型不再相同.有几种解决方法,但我个人尽量避免这种序列化。

    2. ORM 映射并将其存储到小型数据库中。 SQLite 是这类东西的绝佳选择,因为它很小(单个文件)和完整的 ACID 支持数据库。你需要一个mapper,或者你需要自己实现mapper。

    我相信你会在几分钟内从人们那里得到其他选择。

    所以选择取决于你。

    祝你好运。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-21
      • 1970-01-01
      • 1970-01-01
      • 2014-05-14
      • 1970-01-01
      • 2011-04-20
      • 2013-06-22
      • 2023-03-08
      相关资源
      最近更新 更多