WinForms - 这是持久保存一些数据的最简单方法吗?

Gre*_*reg 8 c# persistence winforms

刚刚构建我的第一个WinForms应用程序.

问题 - 在使用应用程序之间保存一些数据的最简单/最好的方法是什么(例如,在这种情况下,URL列表包含状态和日期/时间)?我认为不需要数据库.

例如*只是最简单地存储到文本文件?*或者像在DotNet中一样容易存储到XML文件*Windows注册表怎么样?这通常是要避免的吗?它是否适用于包括Windows 7*数据库在内的所有版本 - 在这里可能过度使用*可能是一个广泛使用的库?

谢谢

Dal*_*ale 9

看一下项目的设置(在解决方案资源管理器>属性>设置选项卡中右键单击项目),您可以定义在每个用户的程序使用过程中持久保存的一些变量,如用户名,上次更新时间,代理服务器,类似的东西.设置本身被序列化为XML并存放在每个用户的"应用程序设置"文件夹中,但您也可以指定默认或特定于应用程序的设置.

然后,您可以使用以下设置:

MyNamespace.Properties.Settings.Default.MySetting
Run Code Online (Sandbox Code Playgroud)

有关设置文件的更多信息可以在MSDN代码项目中找到

如果您只需要在会话之间存储一些变量,那就太棒了.如果需要存储大量数据,请查看其他答案中建议的任一数据库选项或序列化.


Qui*_*son 5

如果你真的需要繁重的持久性和应用程序存储空间,你可以使用sqlite或sql server compact(两者都是独立的)但是在你的情况下我认为在普通应用程序数据文件夹中读取/写入xml文件会很好地满足你的需求并且是增加容易.


Jef*_*ici 4

在 .NET 中存储到 XML 非常容易,特别是如果您实际上只是存储 URL 和时间戳的话。您可以创建一个自定义类来保存数据...在运行时,在应用程序中操作该类的实例。

当需要保存时,将对象序列化为 XML...当应用程序需要稍后恢复数据时,只需反序列化即可。MSDN 有一个简单的演练

值得注意的是,正如 Quintin 所做的那样,使用 SQL Server Compact 或其他一些轻量级数据库也可能是一个好主意。XML 快速且简单 - 但如果您需要人们共享数据或者您需要比简单序列化更灵活的东西,那么您最好使用数据库。