在C#中存储应用程序设置

时间:2010-07-30 12:38:26

标签: c# configuration-files

在C#中存储应用程序设置(例如用户名和密码,数据库位置......)的最佳做法是什么?

提示:我是.net和C#

的新手

7 个答案:

答案 0 :(得分:12)

应用程序配置应用程序范围(非特定于用户)的设置属于app.config(适用于桌面应用程序)或web.config(适用于Web应用程序)。

加密web.config文件的各个部分非常简单,如this Super Simple Example中所述。

如果您需要存储用户特定设置(如应用程序设置等)或与应用程序配置无关的应用程序范围设置,您可以使用此处所述的设置文件:

User Settings in C#

答案 1 :(得分:7)

我不确定它引入了什么版本的.net / Visual Studio,但您可以右键单击您的项目,选择“添加新项”并从“添加新项”窗口中选择“设置文件” 。这为您的项目提供了一个(默认命名)Settings.settings文件,您可以配置要公开的所有设置。

您可以将您创建的设置定义为应用程序用户,这意味着您可以使用此单一界面来控制全局和用户设置。使用Visual Studio提供的编辑器在Settings.settings文件中创建设置后,可以使用以下代码访问它:

// Get a Setting value
var valueOfSetting1 = Settings1.Default.Setting1;

// Modify and save a Setting value
Settings1.Default.Setting1 = "New Value";
Settings1.Default.Save();

答案 2 :(得分:2)

第一个选项是注册表。它很简单,但对密码来说不太安全。另一个选项是使用您创建的文件。这也不安全,除非你想实现加密。

下一个选项是使用“应用程序设置”。这也很简单,但有一些捕获。首先,右键单击您的项目并转到“属性”。在“设置”选项卡下,您可以通过

存储可从程序访问的变量
string password = Properties.Settings.Default.Password

您也可以以相同的方式更改它们,但仅在范围设置为用户时。当范围是应用程序范围时,VS不允许您出于某些奇怪的原因更改这些变量。要保存更改,您必须按如下方式调用Save():

Properties.Settings.Default.Save();

这些保存在C:\ Documents and Settings \'Current User'\ Local Settings \ Application Data \

下的User Data文件夹中

另一种选择是将它们包含在您的数据库中,但由于您还要存储数据库位置,这可能不适合您。

答案 3 :(得分:0)

我认为app.config(非网络应用)或web.config(网络应用)。

答案 4 :(得分:0)

这些设置通常位于应用程序配置文件(web.config,app.config)中。

http://www.devasp.net/net/articles/display/679.html

如果要存储密码,则可能还需要加密相关配置部分。

http://msdn.microsoft.com/en-us/library/53tyfkaw.aspx

http://msdn.microsoft.com/en-us/library/ff650304.aspx

请注意,如果您使用app.config,您将看到它被重命名为..config,具体取决于您的输出是生成DLL还是EXE。

答案 5 :(得分:0)

appsettings配置文件,ini文件(nini),embeddable数据库(sqlite,berkelydb / etc ..),无论你喜欢什么方法,都取决于你的应用程序大小/性能考虑和设计。

答案 6 :(得分:0)

与上述回复建议一样,app.config或web.config是应用设置的最佳位置。 如果您需要更强大的数据库,服务器设置等xml样式标记方式,可以使用configurationSection并创建自定义部分。

http://www.codeproject.com/KB/cs/CustomConfigurationSectio.aspx

对于数据库密码,我这样做的方式是在xml标记值中有一个加密的字符串,然后在读取时解密,这样就不会暴露密码。