C#讀寫config設定檔

來源:互聯網
上載者:User
C#讀寫config設定檔

應用程式設定檔(App.config)是標準的 XML 檔案,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 =
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.