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文件中把节点写好
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/zxhadolph/article/details/83590581