我正在寻找持久保存应用程序本地状态的好选项(在.Net / C#中创建。)
我考虑过使用自己的解决方案,或者使用像Sqllite这样的简单本地数据库,但是我想我会向SO社区询问可用的选项。
我正在处理的应用程序存在于Kiosk上,我将需要在意外关闭和其他类似例外的情况下保持本地状态。
你推荐什么?
好吧,经过进一步的审核后,我决定将SQLite与DbLinq一起使用,主要的替代竞争者是SQL Server Compact版本,但我发现有几个重要的因素,它们将SQLite置于SQLCE之上。
值得注意的是
对于我的用例,我需要类似(易于)查询的事件日志(我需要允许审计信用交易)。我在这里讨论的主要州值是可以在信息亭上获得的。因此,要在应用程序启动时恢复我的状态变量,我可以在日志中查询最后一个条目并从那里获取所需的值。
当你只需要存储一个值并检索它时,Properties.Settings或app.config就是完全适合这样做的地方。
答案 0 :(得分:4)
我建议XmlSerializer
或BinaryFormatter
,您可以在SO或谷歌上查看它们。
您的选择取决于一些偏好,例如数据集的大小或快速序列化的能力。
如果您需要一次性保存整个应用状态,那么两者都非常快捷。
但是,如果您需要逐个部分保存应用状态,则会发生更改,例如,您可以使用某种数据库http://www.sqlite.org/更好。
http://www.jonasjohn.de/snippets/csharp/xmlserializer-example.htm
答案 1 :(得分:3)
SQLite绝对是一个不错的选择,它比一个完整的数据库更轻,并且在遇到严重错误的情况下它符合ACID。
此处唯一的要求是您有一个数据库并发用户。
答案 2 :(得分:1)
您可以使用app.config或Properties.Settings
吗?
答案 3 :(得分:1)
您可以使用Settings in VS。对于您的情况,您需要存储用户首选项的用户范围设置。
答案 4 :(得分:0)
您可以使用SQL Server CE 4.0而不是SQLite。将数据存储在一个文件中,您可以使用实体框架代码优先。