当前位置:嗨网首页>书籍在线阅读

04-配置文件的访问

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

19.1.2 配置文件的访问

我们可以通过ConfigurationManager类访问配置文件,要使用该类,必须在工程里添加system.configuration.dll程序集的引用。在解决方案管理器中右键单击工程名称,在右键菜单中选择“添加引用”,在“net”选项卡下找到System.Configuration,单击“确定”按钮完成程序集的引入。另外,还应该在文件头添加对System.Configuration命名空间的引用。

1.访问appSettings配置节

在使用ConfigurationManager读取配置节数据的时候,我们读取的是*.exe.config文件中的配置数据,而不是App.config文件中的配置数据。如果我们要读取上一节中配置文件中的串口名,程序代码如下。

01  public  static void Main()
02  {
03          foreach (string key in ConfigurationManager.AppSettings)
04          {
05                   (key =="PortName")
06          {
07                  System.out.println("PortName:"+ConfigurationManager.AppSettings[strKey]);
08          }
09          }
10  }

如果我们想把串口名改为“COM2”,同时添加一个key为“IP”,value为“172.21.2.136”的键值对,程序代码如下。

01  string assemblyConfigFile = System.Reflection.Assembly.GetEntryAssembly().Location;
02  Configuration config = ConfigurationManager.OpenExeConfiguration(assemblyConfigFile);
03  AppSettingsSection appSettings = (AppSettingsSection)config.GetSection("appSettings");
04  appSettings.Settings.Remove("PortName");
05  appSettings.Settings.Add("PortName", "COM2");
06  cfa.AppSettings.Settings.Add("IP", "172.21.2.136") 
07  config.Save();

2.访问connectionStrings配置节

connectionStrings配置节是专门用来存/取数据库的连接字符串,其访问方式与appConfig配置节类似,下面的程序用来读取前面connectionStrings配置节中SQL Server数据库连接字符串。

01  public static void Main()
02  {
03          string connectionString = 
04          ConfigurationManager.ConnectionStrings[“SqlServerStr“].ConnectionString.ToString();
05          Console.WriteLine(connectionString);
06  }

修改连接字符串的操作同样需要先删除连接字符串的配置节的内容,然后再添加同名的配置节键,下面的代码用来修改前面connectionStrings配置节中Oracle数据库的连接字符串。

01  public static void Main()
02  {
03          bool isModified = false; //记录该连接串是否已经存在
04          //如果要更改的连接串已经存在
05          if (ConfigurationManager.ConnectionStrings[”OracleStr”] != null)
06          {
07                  isModified = true;
08          }
09          //新建一个连接字符串实例
10          ConnectionStringSettings mySettings = 
11          new ConnectionStringSettings(”OracleStr”, “Data Source=TORCL;User Id=orcl;Password=orcl;”);
12          // 打开可执行的配置文件*.exe.config
13          Configuration config = 
14          ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
15          // 如果连接串已存在,首先删除它
16          if (isModified)
17          {
18                  config.ConnectionStrings.ConnectionStrings.Remove(”OracleStr”);
19          }
20          // 将新的连接串添加到配置文件中
21          config.ConnectionStrings.ConnectionStrings.Add(mySettings);
22          // 保存对配置文件所作的更改
23          config.Save(ConfigurationSaveMode.Modified);
24  /        / 强制重新载入配置文件的ConnectionStrings配置节
25          ConfigurationManager.RefreshSection("ConnectionStrings");
26  }

3.访问自定义配置节

对于自定义的配置节,我们通过ConfigurationSettings类的静态方法GetConfig来获取自定义配置节的信息,下面的程序用来读取自定义配置节Fruit和Bank的数据。

01  //访问配置节Fruit
02.IDictionary IDFruit = (IDictionary)ConfigurationSettings.GetConfig("Fruit");
03  string str = (string)Fruit["setting1"] +" "+(string) Fruit["setting2"];
04  Console.writeLine(str);
05  //访问配置节Bank
06  IDictionary IDBank = (IDictionary)ConfigurationSettings.GetConfig("Bank");
07  string[] keys=new string[IDBank.Keys.Count];
08  string[] values=new string[IDBank.Keys.Count];
09  IDBank.Keys.CopyTo(keys,0);
10  IDBank.Values.CopyTo(values,0);
11  MessageBox.Show(keys[0]+" "+values[0]);