C# ConfigurationManager 类的使用

一、前言

  在项目中,我们习惯使用 ConfigurationManager 来读取一些常量。如链接数据库字符串、一些需配置的数据(微信、QQ、支付宝)等的配置。我们需要把这些数据记录在 app.config 或者 web.config 中。接下来我们具体看一下 ConfigurationManager  :

二、介绍

   命名空间:System.Configuration

   程序集: System.Configuration.dll

引用:在使用中,如果出现“当前上下文中不存在名称:ConfigurationManager ”,你就要检查有没有引用程序集和命名空间了。

  ConfigurationManager类: 包含属性(AppSettings、ConnectionStrings )、方法(GetSection、OpenExeConfiguration、OpenExeConfiguration、OpenMachineConfiguration、OpenMappedExeConfiguration、OpenMappedExeConfiguration、OpenMappedMachineConfiguration、RefreshSection)

三、使用

  通过 AppSettings 来获取数据,简单使用案例:

```

using System;

using System.Configuration;

namespace ConsoleApplication1

{

    class Program

    {

        static void Main(string[] args)

        {

            ReadAllSettings();

            ReadSetting("Setting1");

            ReadSetting("NotValid");

            AddUpdateAppSettings("NewSetting", "May 7, 2014");

            AddUpdateAppSettings("Setting1", "May 8, 2014");

            ReadAllSettings();

        }

        static void ReadAllSettings()

        {

            try

            {

                var appSettings = ConfigurationManager.AppSettings;

                if (appSettings.Count == 0)

                {

                    Console.WriteLine("AppSettings is empty.");

                }

                else

                {

                    foreach (var key in appSettings.AllKeys)

                    {

                        Console.WriteLine("Key: {0} Value: {1}", key, appSettings[key]);

                    }

                }

            }

            catch (ConfigurationErrorsException)

            {

                Console.WriteLine("Error reading app settings");

            }

        }

        static void ReadSetting(string key)

        {

            try

            {

                var appSettings = ConfigurationManager.AppSettings;

                string result = appSettings[key] ?? "Not Found";

                Console.WriteLine(result);

            }

            catch (ConfigurationErrorsException)

            {

                Console.WriteLine("Error reading app settings");

            }

        }

        static void AddUpdateAppSettings(string key, string value)

        {

            try

            {

                var configFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

                var settings = configFile.AppSettings.Settings;

                if (settings[key] == null)

                {

                    settings.Add(key, value);

                }

                else

                {

                    settings[key].Value = value;

                }

                configFile.Save(ConfigurationSaveMode.Modified);

                ConfigurationManager.RefreshSection(configFile.AppSettings.SectionInformation.Name);

            }

            catch (ConfigurationErrorsException)

            {

                Console.WriteLine("Error writing app settings");

            }

        }

    }

}

```

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容