在c#中序列化和存储对象的最简单方法?

在c#中序列化和存储对象的最简单方法?,c#,.net,serialization,storage,poco,C#,.net,Serialization,Storage,Poco,我正在寻找一个简单的解决方案来序列化和存储包含配置、应用程序状态和数据的对象。这是一个简单的应用程序,数据不多。速度不是问题。我希望它正在进行中。我希望它在文本编辑器中比xml更容易编辑 我找不到任何.net的文档数据库可以在进程中处理它。 简单地序列化为xml我不确定我想做什么,因为它。。。xml。 序列化为JSON似乎非常特定于javascript,我不会在javascript中使用这些数据 我认为有非常简洁的方法可以做到这一点,但是尽管包含javascript,我还是倾向于使用JSON。仅

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


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

我认为有非常简洁的方法可以做到这一点,但是尽管包含javascript,我还是倾向于使用JSON。

仅仅因为“JSON”是javascript对象表示法的首字母缩略词,对于它是否适合您的需要以及是否作为数据格式没有任何关系。JSON是一种轻量级的、基于文本的、易于人类阅读/编辑的格式,它是一种与语言无关的格式,尽管名称不同


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

我将给出几个选择:

  • 二进制序列化:取决于对象的内容,若您有复杂的依赖树,它可能会在序列化时产生问题。另外,它也不是很灵活,因为Microsoft提供的标准二进制序列化也存储保存类型信息。这意味着,如果您将一个类型保存在二进制文件中,并且在一个月后决定重新组织代码,比如说将同一个类移动到另一个名称空间,那么从先前保存的二进制文件进行理想化时,它将失败,因为类型不再相同。在这方面有几个工作区,但我个人尽量避免这种序列化

  • ORM映射并将其存储到小型数据库中。SQLite对于这类东西来说是很棒的选择,因为它很小(单个文件)并且支持完整的ACID数据库。您需要一个映射器,或者您需要自己实现映射器

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

    所以选择权在你


    祝你好运。

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