我的 Simple C# 应用程序包含一个设置窗口。它实际上提示设置或重置密码。目前,我正在使用数据库保存这些首选项,并在下次登录时相应地显示它。
我想知道是否有一种简单的方法可以让应用程序在我们下次打开它时记住这些偏好。
可能的?
我的 Simple C# 应用程序包含一个设置窗口。它实际上提示设置或重置密码。目前,我正在使用数据库保存这些首选项,并在下次登录时相应地显示它。
我想知道是否有一种简单的方法可以让应用程序在我们下次打开它时记住这些偏好。
可能的?
有几种方法可以保存首选项。您可以使用内置的设置系统Properties.Settings.Default.yoursetting
,您可以使用IsolatedStorage System.IO.IsolatedStorage
,您可以简单地将文件写入应用程序目录,您可以通过创建自己的注册表项将其保存在注册表中。如果您想要一些简单的东西,请转到解决方案资源管理器使用内置设置,打开“属性”文件夹并双击 Settings.settings。添加您想要的设置字段,您可以通过Properties.Settings.Default.yoursetting
首先要做的是清楚地了解您的设置:
我将总结一下我通常如何对应用程序的选项进行分类。
我称它们为“DomainOptions”、“MachineOptions”和“UserOptions”
DomainOptions是为每个用户以及从他们运行应用程序的任何机器定义应用程序行为的设置。这些设置显然应该存储在共享数据库中,并且只有有限数量的用户应该能够修改它们(即 Web 服务的 uri、应用程序数据的共享文件夹、当地法规要求的固定税值等等)
ApplicationOptions是定义应用程序在特定机器启动时的行为的设置。例如,考虑一台具有 VPN 连接并且需要在运行应用程序之前进行身份验证的机器。这些设置可以存储在 app.config 或其他本地存储中(不惜一切代价避免使用 REGISTRY),但请记住,如果您需要在运行时更改这些值,则不能将它们写入应用程序的配置文件中部分,因为它在运行时只读。在这种情况下,我建议编写您自己的类来将某种 XML 文件存储在您的公共应用程序数据目录中(Environment.SpecialFolder.CommonApplicationData + yourappfolder)
UserOptions是每个用户都可以个性化的设置,例如颜色、窗口位置、可访问性参数等。这些可以通过配置文件(用户部分)轻松存储,因为每个用户都可以修改它们。但是,如果您还有一个类来存储 ApplicationOptions,那么实现一个变体将这些设置存储在本地应用程序数据中是微不足道的。(Environment.SpecialFolder.ApplicationData + yourappfolder)
如果这是一个正常的偏好,或者如果你真的不关心是否有人可以读取用户的凭据并使用它,那么将它存储在某个配置文件中就可以了。您还可以选择加密凭据并将其存储在某个位置。但是,我宁愿使用 Windows 的内置凭证管理器来存储登录信息,就像 TFS 一样。
“控制面板\所有控制面板项\凭据管理器”