我正在编写一个应用程序,它获取用户数据并将其存储在本地以供以后使用。该应用程序将经常启动和停止,我想让它在应用程序启动/结束时保存/加载数据。
如果我使用平面文件,这将相当简单,因为数据实际上并不需要保护(它只会存储在这台 PC 上)。因此,我相信的选择是:
- 平面文件
- XML
- 数据库
平面文件需要更多的努力来维护(没有像 XML 这样的内置类),但是我以前没有使用过 XML,对于这个相对简单的任务,SQL 似乎有点过分了。
还有其他值得探索的途径吗?如果不是,哪些是最好的解决方案?
编辑:要为问题添加更多数据,基本上我唯一想要存储的是一个看起来像这样的字典
Dictionary<string, List<Account>>
其中 Account 是另一种自定义类型。
我会将dict序列化为xmlroot,然后将Account类型序列化为属性吗?
更新 2:
所以可以序列化一个字典。让它变得复杂的是,这个 dict 的值本身就是一个泛型,它是一个 Account 类型的复杂数据结构的列表。每个帐户都相当简单,它只是一堆属性。
据我了解,这里的目标是尝试并最终得到以下结果:
<Username1>
<Account1>
<Data1>data1</Data1>
<Data2>data2</Data2>
</Account1>
</Username1>
<Username2>
<Account1>
<Data1>data1</Data1>
<Data2>data2</Data2>
</Account1>
<Account2>
<Data1>data1</Data1>
<Data2>data2</Data2>
</Account2>
</Username2>
如您所见,继承权是
- 用户名(字典字符串)>
- 帐户(列表中的每个帐户)>
- 帐户数据(即类属性)。
从 a 获得这个布局Dictionary<Username, List<Account>>
是一个棘手的问题,也是这个问题的本质。
这里有很多关于序列化的“如何”回复,这是我的错,因为我没有在早期把它说得更清楚,但现在我正在寻找一个明确的解决方案。