プロファイルの読み取りにwebconfigを追加

10038 ワード

webconfig.xmlのプロファイルの内容は豊富ですが、この記事ではAppSettingsというノードについてのみプロファイルの読み取りと追加を行います
public class ConfigurationRef

    {

        /// <summary>

        ///  

        /// </summary>

        /// <param name="key"> </param>

        /// <returns></returns>

        public static string GetConfig(string key)

        {

            string val = string.Empty;

            if (WebConfigurationManager.AppSettings.AllKeys.Contains(key))

                val = WebConfigurationManager.AppSettings[key];

            return val;

        }



        /// <summary>

        ///  

        /// </summary>

        /// <returns></returns>

        public static Dictionary<string, string> GetConfig()

        {

            Dictionary<string, string> dict = new Dictionary<string, string>();

            foreach (string key in WebConfigurationManager.AppSettings.AllKeys)

                dict.Add(key, WebConfigurationManager.AppSettings[key]);

            return dict;

        }



        /// <summary>

        ///  

        /// </summary>

        /// <param name="key"> </param>

        /// <param name="defaultValue"> </param>

        /// <returns></returns>

        public static string GetConfig(string key, string defaultValue)

        {

            string val = defaultValue;

            if (WebConfigurationManager.AppSettings.AllKeys.Contains(key))

                val = WebConfigurationManager.AppSettings[key];

            if (val == null)

                val = defaultValue;

            return val;

        }



        /// <summary>

        ///  , 

        /// </summary>

        /// <param name="key"> </param>

        /// <param name="value"> </param>

        /// <returns></returns>

        public static bool SetConfig(string key, string value)

        {

            try

            {

                Configuration conf = WebConfigurationManager.OpenWebConfiguration("~");

                if (!conf.AppSettings.Settings.AllKeys.Contains(key))

                    conf.AppSettings.Settings.Add(key, value);

                else

                    conf.AppSettings.Settings[key].Value = value;

                conf.Save();

                return true;

            }

            catch { return false; }

        }



        /// <summary>

        ///  ( ), 

        /// </summary>

        /// <param name="dict"> </param>

        /// <returns></returns>

        public static bool SetConfig(Dictionary<string, string> dict)

        {

            try

            {

                if (dict == null || dict.Count == 0)

                    return false;

                Configuration conf = WebConfigurationManager.OpenWebConfiguration("~");//ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

                foreach (string key in dict.Keys)

                {

                    if (!conf.AppSettings.Settings.AllKeys.Contains(key))

                        conf.AppSettings.Settings.Add(key, dict[key]);

                    else

                        conf.AppSettings.Settings[key].Value = dict[key];

                }

                conf.Save();

                return true;

            }

            catch { return false; }

        }

    }

 
コードは貼ってきて、実は何も解釈することができなくて、みんながすべて理解することができることを信じます