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

Doo*_*ght 3 c# config

我有一些我想要设置的值,以及从某种文件中加载它们的应用程序.

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

DatabaseName = "DB1/test"
DatabasePassword = "password"
Development = "true"
Run Code Online (Sandbox Code Playgroud)

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

 configfile.DatabaseName
Run Code Online (Sandbox Code Playgroud)

谢谢,保罗

Jos*_*osh 10

你真的应该使用内置的应用程序设置

您可以使用ConfigurationManager直接访问简单设置

ConfigurationManager.AppSettings["MySetting"] = "SomeStuff";
var mySetting = ConfigurationManager.AppSettings["MySetting"];
Run Code Online (Sandbox Code Playgroud)

您还可以使用ConfigurationManager直接访问Connection Strings

var conn = ConfigurationManager.ConnectionStrings["DevSqlServer"];
Run Code Online (Sandbox Code Playgroud)

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


从评论中回答Doomsknight的问题

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

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

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

示例:MyAssembly.config,Another.Assembly.config

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

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

用户范围设置存储在所述用户简档

例: 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>
Run Code Online (Sandbox Code Playgroud)

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

我希望这会有所帮助.