我正在编写一个接受用户数据并将其存储在本地以供以后使用的应用程序。该应用程序将经常启动和停止,我想使其在应用程序启动/结束时保存/加载数据。
如果我使用平面文件,那将是相当简单的,因为实际上并不需要保护数据(仅将数据存储在此PC上)。因此,我相信的选择是:
- 平面文件
- XML格式
- SQL数据库
平面文件需要花费更多的精力来维护(没有像XML这样的内置类),但是我以前从未使用过XML,对于这个相对简单的任务来说,SQL似乎有些过头。
还有其他值得探索的途径吗?如果没有,哪个是最佳解决方案?
编辑:要添加更多的数据到问题,基本上我只想存储的是一个字典,看起来像这样
Dictionary<string, List<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>>
是一个棘手的问题,也是这个问题的本质。
关于序列化,这里有很多“如何做”的响应,这是我的错,因为我并没有很早就弄清楚,但是现在我正在寻找一个确定的解决方案。