📜  c# configurationmanager load from file - C# (1)

📅  最后修改于: 2023-12-03 14:39:42.536000             🧑  作者: Mango

C# ConfigurationManager Load from File

在C#中,我们可以通过ConfigurationManager类来读取配置文件中的设置。配置文件可以是XML格式的,也可以是其他格式的。

为什么要使用ConfigurationManager

配置文件中存储了应用程序的各种设置,包括数据库连接字符串、应用程序的行为、应用程序的样式等等。在实际的开发中,我们经常需要动态读取这些设置,而不是在代码中硬编码。

使用ConfigurationManager,我们可以在应用程序运行时动态加载和读取这些设置。

如何使用ConfigurationManager

首先需要在应用程序的配置文件中定义一些配置信息。例如,下面是一个简单的配置文件(app.config):

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
   <appSettings>
      <add key="MaxUsers" value="100"/>
      <add key="DefaultTheme" value="Blue"/>
   </appSettings>
   <connectionStrings>
      <add name="MyDBConnection" connectionString="Data Source=MyServer;Initial Catalog=MyDB;User ID=MyUser;Password=MyPassword"/>
   </connectionStrings>
</configuration>

上面的配置文件中定义了两个设置:

  • MaxUsers:最大用户数,值为100。
  • DefaultTheme:默认主题颜色,值为“Blue”。

同时还定义了一个名为“MyDBConnection”的连接字符串,用于连接数据库。

在代码中,使用ConfigurationManager类来读取这些设置。下面是一个简单的示例:

using System.Configuration;

...

// 读取app.config中的MaxUsers配置信息
int maxUsers = int.Parse(ConfigurationManager.AppSettings["MaxUsers"]);

// 读取app.config中的DefaultTheme配置信息
string defaultTheme = ConfigurationManager.AppSettings["DefaultTheme"];

// 读取连接字符串
string connectionString = ConfigurationManager.ConnectionStrings["MyDBConnection"].ConnectionString;

解释一下上面的代码:

  • 要读取appSettings中的设置,可以使用ConfigurationManager.AppSettings[key]方法来获取指定的配置信息。其中key为配置项的名称,value为对应的值。
  • 如果要读取连接字符串,可以使用ConfigurationManager.ConnectionStrings[name].ConnectionString方法来获取指定的连接字符串。其中name为连接字符串的名称,ConnectionString为对应的连接字符串。
从不同的配置文件读取设置

ConfigurationManager默认会读取应用程序的app.config文件中的配置信息。但如果需要从其他的配置文件中读取设置,可以使用ConfigurationManager的不同配置文件的路径。下面是一个具体的示例:

using System.Configuration;

...

// 读取指定路径下的配置文件中的设置
ExeConfigurationFileMap configFileMap = new ExeConfigurationFileMap();
configFileMap.ExeConfigFilename = @"C:\MyApp\MyConfigFile.config";
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(configFileMap, ConfigurationUserLevel.None);

// 读取配置文件中的设置
string setting = config.AppSettings.Settings["MySetting"].Value;

解释一下上面的代码:

  • 要读取其他的配置文件,可以使用ExeConfigurationFileMap类来指定配置文件的路径。ExeConfigFilename属性指定配置文件的路径。
  • 然后使用ConfigurationManager.OpenMappedExeConfiguration方法来打开指定配置文件。其中,ConfigurationUserLevel.None表示该配置文件是只读的。
  • 然后可以使用Configuration.AppSettings.Settings属性来读取配置文件中的appSettings中的设置。
总结

ConfigurationManager类是一个非常方便的工具,能够帮助我们动态读取应用程序的设置和配置。在使用时,需要首先定义好配置文件,并按照指定格式保存配置信息。然后在代码中,使用ConfigurationManager类来读取这些设置。