将配置数据存储在注册表中是不是一种坏习惯?

时间:2011-03-04 16:22:32

标签: c# winforms configuration registry

我目前正在开发由其他人创建的Winforms应用。我注意到所有配置都存储在注册表中。这包括连接字符串等。 这是好事还是坏事?如果不好,那么更好的替代方案是什么?

4 个答案:

答案 0 :(得分:6)

您和用户的更好选择是使用存储在每用户应用程序数据目录中的配置文件。查看System.Configuration命名空间的文档。该框架的2.0版在每个应用程序配置文件之外添加了 lot 功能。

答案 1 :(得分:1)

我认为更好的选择是将它们存储在app.config中。这提供了更好的可见性,坦率地说更容易改变。

答案 2 :(得分:0)

这主要是.NET .NET之前的一个老习惯(VB6浮现在脑海中),当时没有标准的配置文件,微软建议在注册表中存储配置。

目前,注册表是存储多个应用程序使用的信息的好地方,但如果不是这种情况,则应该更喜欢应用程序配置文件。

答案 3 :(得分:0)

如果您想要隐藏您的应用设置,大多数用户都不够精明,无法通过注册表查找与应用相关的密钥。此外,正如其他答案所指出的那样,早在XML配置文件标准之前的几天,注册表就是推荐的地方。

推荐的选项是现在的XML配置文件;它不会将数据添加到启动时加载的文件中,这意味着您对计算机问题的贡献不大,因为计算机上有大量的注册表。它更容易更改(假设您的用户具有管理员访问权限,并且在任何情况下,您的程序都需要特殊权限才能访问该文件以进行编程更改。)

如果你想让数据远离临时用户,那么SQLite数据库是一种相对轻量级的方式来存储少量数据,比如用户设置,这种方式在不访问SQLite的情况下不易改变。请记住,如果你可以进入,其他人也可以,无论多么艰难。