存储/设置C#应用程序配置设置的最佳方法是什么?

时间:2011-09-27 13:40:43

标签: c# config

我有一些我希望能够设置的值,以及从某种文件中加载它们的应用程序。

我能想到的唯一概念是一个简单的txt文件,它可能包含以下几行:

DatabaseName = "DB1/test"
DatabasePassword = "password"
Development = "true"

但我认为它应该在某种配置文件中?另外,读取这些值的txt文件并不是完整的代码。如果我可以通过在我的应用程序中说出来获取数据库名称,那将是很好的:

 configfile.DatabaseName

谢谢, 保罗

2 个答案:

答案 0 :(得分:10)

你真的应该使用内置的Application Settings

您可以使用ConfigurationManager

直接访问简单设置
ConfigurationManager.AppSettings["MySetting"] = "SomeStuff";
var mySetting = ConfigurationManager.AppSettings["MySetting"];

使用ConfigurationManager还可以直接访问连接字符串

var conn = ConfigurationManager.ConnectionStrings["DevSqlServer"];

所有这些都存储在XML文件中,默认情况下是* .config文件。


从评论中回答Doomsknight的问题

配置设置可以通过多种方式完成,但默认情况下,它们存储在两个位置。

应用程序级别设置存储在配置文件中。

对于可执行程序,此文件与.exe位于同一目录中,并以程序集或可执行文件命名。

示例:MyAssembly.configAnother.Assembly.config

对于Web应用程序,设置存储在位于Web应用程序根目录中的web.config文件(通常)中。它们是分层应用的,一个可以位于Web应用程序的每个目录级别。

示例:MySite\web.configMySite\SubDirectory\web.config

用户范围设置stored in the user profile

示例:C:\Documents and Settings\USERNAME\Local Settings\Application Data\ApplicationName

连接字符串存储在配置文件的<connectionStrings></connectionStrings>部分中。

<connectionStrings>
  <clear />
  <add name="Name" 
   providerName="System.Data.ProviderName" 
   connectionString="Valid Connection String;" />
</connectionStrings>

这些设置可以直接在配置文件中轻松修改,但无需编写一些代码来自动刷新配置文件的部分(这是可能的),通常需要重新启动应用程序。

我希望这会有所帮助。

答案 1 :(得分:3)

.NET内置了一个配置平台。只需将app.config文件添加到项目中,然后使用ConfigurationManager库访问值。