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

时间:2011-07-16 18:55:39

标签: c# .net serialization storage poco

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

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

我认为有很好的方法可以做到这一点,但我仍然倾向于使用JSON,尽管它有javascript inclenation。

2 个答案:

答案 0 :(得分:5)

仅仅因为“JSON”它是JavaScript Object Notation的首字母缩写,与它是否符合您的需求或数据格式无关。 JSON是轻量级的,基于文本的,易于人类可读/可编辑,并且它是一种语言无关的格式,尽管名称。

我绝对倾向于使用它,因为它听起来非常适合你的情况。

答案 1 :(得分:1)

我会给出几个选择:

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

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

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

    所以选择取决于你。

    祝你好运。