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

本文关键字:存储 对象 方法 序列化 最简单 | 更新日期: 2023-09-27 18:02:12

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

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

我认为有非常整洁的方法来做到这一点,但现在我倾向于使用JSON,尽管它的javascript倾斜。

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

仅仅因为"JSON"是JavaScript对象符号的首字母缩略词,就与它是否适合您的需要作为数据格式无关。JSON是轻量级的、基于文本的、易于人类阅读/编辑的,而且它是一种与语言无关的格式。

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

我将给出两个选择:

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

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

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

所以选择取决于你。

好运。