C# ConfigurationManager 類的使用


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");  
            }  
        }  
    }  
}

復制代碼

 在文件 App.config 中配置:

復制代碼

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
  </startup>
  <appSettings>
    <add key="Setting1" value="May 5,2018"/>
    <add key="Setting2" value="May 5,2017"/>
  </appSettings>
</configuration>

復制代碼

2、通過使用 ConnectionStrings 來獲取數據,使用案例

復制代碼

using System;  
using System.Configuration;  
using System.Data.SqlClient;  

namespace ConsoleApplication1  
{  
    class Program  
    {  
        static void Main(string[] args)  
        {  
            ReadUsers();  
        }  

        static void ReadUsers()  
        {  
            var connectionString = ConfigurationManager.ConnectionStrings["Default"].ConnectionString;  
            string queryString = "SELECT Id, Name FROM abpusers;";  
            using (var connection = new SqlConnection(connectionString))  
            {  
                var command = new SqlCommand(queryString, connection);  
                connection.Open();  
                using (var reader = command.ExecuteReader())  
                {  
                    while (reader.Read())  
                    {  
                        Console.WriteLine(String.Format("{0}, {1}", reader[0], reader[1]));  
                    }  
                }  
            }  
        }  
    }  
}

復制代碼

在 App.config 中配置數據庫鏈接字符串:

復制代碼

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
  </startup>
  <appSettings>
    <add key="Setting1" value="May 5,2018"/>
    <add key="Setting2" value="May 5,2017"/>
  </appSettings>

  <connectionStrings>
    <add name="Default" connectionString="Server=127.0.0.1; Database=CityManage; Trusted_Connection=False; Uid=root; pwd=zxx123456;" providerName="System.Data.SqlClient" />
    <add name="Abp.Redis.Cache" connectionString="localhost" />
  </connectionStrings>

</configuration>

復制代碼

簡單小節,資源來源於:官網教程

歡迎各位訪問我的博客,有什么不對的地方,歡迎批評指正,謝謝!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM