我正在编写一个应用程序,它获取用户数据并将其存储在本地以供以后使用。应用程序将经常启动和停止,我想让它在应用程序启动/结束时保存/加载数据。
如果我使用平面文件,那就相当简单了,因为数据并不真正需要保护(它只会存储在这台电脑上)。我认为的选择是:
平面文件需要更多的精力来维护(没有像 XML 那样的内置类),但是我以前没有使用过 XML,而且 SQL 对于这个相对简单的任务来说似乎有点大材小用。
还有其他值得探索的途径吗?如果不是,那么哪个是最好的解决方案?
编辑:为了向问题添加更多数据,基本上我唯一想存储的是一个看起来像这样的字典
Dictionary<string, List<Account>>
其中 Account 是另一种自定义类型。
我会将字典序列化为 xmlroot,然后将帐户类型序列化为属性吗?
更新2:
所以序列化字典是可能的。让它变得复杂的是,这个字典的值本身就是一个泛型,它是 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>
正如你所看到的层次结构是
- 用户名(字典字符串)>
- 帐户(列表中的每个帐户)>
- 帐户数据(即类属性)。
从获取此布局Dictionary<Username, List<Account>>
这是棘手的一点,也是这个问题的本质。
这里有很多关于序列化的“如何”回复,这是我的错,因为我没有尽早说清楚,但现在我正在寻找一个明确的解决方案。