1. 程式人生 > >C# WINFORM程式配置檔案操作方法

C# WINFORM程式配置檔案操作方法

C# WINFORM程式配置檔案操作方法

在寫winform程式的時候,我們經常會把配置檔案寫在Settings.settings中,
在這裡插入圖片描述
但是,在這裡我們發現,儲存後,在程式中對這個配置進行修改並不能生效
程式級別的配置呢,我常用儲存在app.config中的appSettings節點中,在程式中配置時,用ConfigurationManager類對其進行操作

class ConfigureAppConfig
    {
        //靜態構造,不能例項化
        static ConfigureAppConfig() { }
        /**/
                                        /// <summary>
                                        /// 獲取AppSettings配置節中的Key值
                                        /// </summary>
                                        /// <param name="keyName">Key's name</param>
                                        /// <returns>Key's value</returns>
        public static string GetAppSettingsKeyValue(string keyName)
        {
            return ConfigurationManager.AppSettings.Get(keyName);
        } /**//// <summary>
              /// 獲取ConnectionStrings配置節中的值
              /// </summary>
              /// <returns></returns>
        public static string GetConnectionStringsElementValue()
        {
            ConnectionStringSettings settings = System.Configuration.ConfigurationManager.ConnectionStrings["connectionString"];
            return settings.ConnectionString;
        } /**//// <summary>
              /// 儲存節點中ConnectionStrings的子節點配置項的值
              /// </summary>
              /// <param name="elementValue"></param>
        public static void ConnectionStringsSave(string ConnectionStringsName, string elementValue)
        {
            System.Configuration.Configuration config =
            ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            config.ConnectionStrings.ConnectionStrings["connectionString"].ConnectionString = elementValue;
            config.Save(ConfigurationSaveMode.Modified);
            ConfigurationManager.RefreshSection("connectionStrings");
        } /**//// <summary>
              /// 判斷appSettings中是否有此項
              /// </summary>
        private static bool AppSettingsKeyExists(string strKey, Configuration config)
        {
            foreach (string str in config.AppSettings.Settings.AllKeys)
            {
                if (str == strKey)
                {
                    return true;
                }
            }
            return false;
        } /**//// <summary>
              /// 儲存appSettings中某key的value值
              /// </summary>
              /// <param name="strKey">key's name</param>
              /// <param name="newValue">value</param>
        public static void AppSettingsSave(string strKey, string newValue)
        {
            System.Configuration.Configuration config =
             ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            if (AppSettingsKeyExists(strKey, config))
            {
                config.AppSettings.Settings[strKey].Value = newValue;
                config.Save(ConfigurationSaveMode.Modified);
                ConfigurationManager.RefreshSection("appSettings");
            }
        }

    }

這是我常用的一個操作app.config檔案的類,方便使用

對了,在操作前,要在app.config檔案中把節點寫好
在這裡插入圖片描述