国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

詳解C#如何讀寫config配置文件

2019-10-29 21:08:07
字體:
來源:轉載
供稿:網友

配置文件概述:

應用程序配置文件是標準的 XML 文件,XML 標記和屬性是區分大小寫的。它是可以按需要更改的,開發人員可以使用配置文件來更改設置,而不必重編譯應用程序。配置文件的根節點是configuration。我們經常訪問的是appSettings,它是由.Net預定義的配置節。我們經常使用的配置文件的架構是客訴下面的形式。先大概有個印象,通過后面的實例會有一個比較清楚的認識。下面的“配置節”可以理解為進行配置一個XML的節點。

對于一個config文件:

<?xml version="1.0" encoding="utf-8" ?><configuration> <appSettings> <add key="ServerIP" value="127.0.0.1"></add> <add key="DataBase" value="WarehouseDB"></add> <add key="user" value="sa"></add> <add key="password" value="sa"></add> </appSettings></configuration> 

對config配置文件的讀寫類:

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Text.RegularExpressions;using System.Configuration;using System.ServiceModel;using System.ServiceModel.Configuration;namespace NetUtilityLib{ public static class ConfigHelper {  //依據連接串名字connectionName返回數據連接字符串   public static string GetConnectionStringsConfig(string connectionName)  {   //指定config文件讀取   string file = System.Windows.Forms.Application.ExecutablePath;   System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(file);   string connectionString =    config.ConnectionStrings.ConnectionStrings[connectionName].ConnectionString.ToString();   return connectionString;  }  ///<summary>   ///更新連接字符串   ///</summary>   ///<param name="newName">連接字符串名稱</param>   ///<param name="newConString">連接字符串內容</param>   ///<param name="newProviderName">數據提供程序名稱</param>   public static void UpdateConnectionStringsConfig(string newName, string newConString, string newProviderName)  {   //指定config文件讀取   string file = System.Windows.Forms.Application.ExecutablePath;   Configuration config = ConfigurationManager.OpenExeConfiguration(file);   bool exist = false; //記錄該連接串是否已經存在    //如果要更改的連接串已經存在    if (config.ConnectionStrings.ConnectionStrings[newName] != null)   {    exist = true;   }   // 如果連接串已存在,首先刪除它    if (exist)   {    config.ConnectionStrings.ConnectionStrings.Remove(newName);   }   //新建一個連接字符串實例    ConnectionStringSettings mySettings =    new ConnectionStringSettings(newName, newConString, newProviderName);   // 將新的連接串添加到配置文件中.    config.ConnectionStrings.ConnectionStrings.Add(mySettings);   // 保存對配置文件所作的更改    config.Save(ConfigurationSaveMode.Modified);   // 強制重新載入配置文件的ConnectionStrings配置節    ConfigurationManager.RefreshSection("ConnectionStrings");  }  ///<summary>   ///返回*.exe.config文件中appSettings配置節的value項   ///</summary>   ///<param name="strKey"></param>   ///<returns></returns>   public static string GetAppConfig(string strKey)  {   string file = System.Windows.Forms.Application.ExecutablePath;   Configuration config = ConfigurationManager.OpenExeConfiguration(file);   foreach (string key in config.AppSettings.Settings.AllKeys)   {    if (key == strKey)    {     return config.AppSettings.Settings[strKey].Value.ToString();    }   }   return null;  }  ///<summary>   ///在*.exe.config文件中appSettings配置節增加一對鍵值對   ///</summary>   ///<param name="newKey"></param>   ///<param name="newValue"></param>   public static void UpdateAppConfig(string newKey, string newValue)  {   string file = System.Windows.Forms.Application.ExecutablePath;   Configuration config = ConfigurationManager.OpenExeConfiguration(file);   bool exist = false;   foreach (string key in config.AppSettings.Settings.AllKeys)   {    if (key == newKey)    {     exist = true;    }   }   if (exist)   {    config.AppSettings.Settings.Remove(newKey);   }   config.AppSettings.Settings.Add(newKey, newValue);   config.Save(ConfigurationSaveMode.Modified);   ConfigurationManager.RefreshSection("appSettings");  }  // 修改system.serviceModel下所有服務終結點的IP地址  public static void UpdateServiceModelConfig(string configPath, string serverIP)  {   Configuration config = ConfigurationManager.OpenExeConfiguration(configPath);   ConfigurationSectionGroup sec = config.SectionGroups["system.serviceModel"];   ServiceModelSectionGroup serviceModelSectionGroup = sec as ServiceModelSectionGroup;   ClientSection clientSection = serviceModelSectionGroup.Client;   foreach (ChannelEndpointElement item in clientSection.Endpoints)   {    string pattern = @"/b/d{1,3}/./d{1,3}/./d{1,3}/./d{1,3}/b";    string address = item.Address.ToString();    string replacement = string.Format("{0}", serverIP);    address = Regex.Replace(address, pattern, replacement);    item.Address = new Uri(address);   }   config.Save(ConfigurationSaveMode.Modified);   ConfigurationManager.RefreshSection("system.serviceModel");  }  // 修改applicationSettings中App.Properties.Settings中服務的IP地址  public static void UpdateConfig(string configPath, string serverIP)  {   Configuration config = ConfigurationManager.OpenExeConfiguration(configPath);   ConfigurationSectionGroup sec = config.SectionGroups["applicationSettings"];   ConfigurationSection configSection = sec.Sections["DataService.Properties.Settings"];   ClientSettingsSection clientSettingsSection = configSection as ClientSettingsSection;   if (clientSettingsSection != null)   {    SettingElement element1 = clientSettingsSection.Settings.Get("DataService_SystemManagerWS_SystemManagerWS");    if (element1 != null)    {     clientSettingsSection.Settings.Remove(element1);     string oldValue = element1.Value.ValueXml.InnerXml;     element1.Value.ValueXml.InnerXml = GetNewIP(oldValue, serverIP);     clientSettingsSection.Settings.Add(element1);    }    SettingElement element2 = clientSettingsSection.Settings.Get("DataService_EquipManagerWS_EquipManagerWS");    if (element2 != null)    {     clientSettingsSection.Settings.Remove(element2);     string oldValue = element2.Value.ValueXml.InnerXml;     element2.Value.ValueXml.InnerXml = GetNewIP(oldValue, serverIP);     clientSettingsSection.Settings.Add(element2);    }   }   config.Save(ConfigurationSaveMode.Modified);   ConfigurationManager.RefreshSection("applicationSettings");  }  private static string GetNewIP(string oldValue, string serverIP)  {   string pattern = @"/b/d{1,3}/./d{1,3}/./d{1,3}/./d{1,3}/b";   string replacement = string.Format("{0}", serverIP);   string newvalue = Regex.Replace(oldValue, pattern, replacement);   return newvalue;  } }} 

測試代碼如下:

 class Program {  static void Main(string[] args)  {   try   {    //string file = System.Windows.Forms.Application.ExecutablePath + ".config";    //string file1 = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile;    string serverIP = ConfigHelper.GetAppConfig("ServerIP");    string db = ConfigHelper.GetAppConfig("DataBase");    string user = ConfigHelper.GetAppConfig("user");    string password = ConfigHelper.GetAppConfig("password");    Console.WriteLine(serverIP);    Console.WriteLine(db);    Console.WriteLine(user);    Console.WriteLine(password);    ConfigHelper.UpdateAppConfig("ServerIP", "192.168.1.11");    string newIP = ConfigHelper.GetAppConfig("ServerIP");    Console.WriteLine(newIP);    Console.ReadKey();   }   catch (Exception ex)   {    Console.WriteLine(ex.Message);   }  } }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到c#教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 明水县| 弥勒县| 北辰区| 文化| 马山县| 进贤县| 监利县| 聂拉木县| 昭苏县| 临漳县| 汨罗市| 安图县| 安岳县| 普洱| 观塘区| 米泉市| 金华市| 色达县| 伊春市| 宁安市| 从江县| 饶平县| 景宁| 延吉市| 佳木斯市| 永靖县| 鄂托克旗| 康定县| 阿鲁科尔沁旗| 麻江县| 柯坪县| 铜鼓县| 武胜县| 宁夏| 贺兰县| 隆昌县| 华安县| 西宁市| 陆丰市| 清苑县| 德格县|