C#自定義配置節點的實現

這篇文章記錄下,支付寶配置信息,如何實現自定義配置文件,不用將所有的配置信息都放到Web.config文件中,減少web.config文件的體積。

1.在項目中,新建AliPay.config文件,如果是windows應用程序,記得將AliPay.config的屬性->複製到輸出目錄,設置成:始終複製 。配置文件的結構如下:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  
  <configSections>
    <section name="alipayConfig" type="JuCheap.Config.AlipayConfiguration,ConsoleApplication1"/>
  </configSections>

  <alipayConfig Partner="2015666666666" Key="0XXDKFDJFKDFOWOWKCMEDINALSDL81919DDKWH" Email="[email protected]"/>
  
</configuration>

2.有了如上結構,我們新建AlipayConfiguration.cs配置文件類,實現代碼如下:

using System.Configuration;

namespace JuCheap.Config
{
    /// <summary>
    /// Alipay Config
    /// </summary>
    public class AlipayConfiguration : ConfigurationSection
    {
        private static AlipayConfiguration setting;

        public static AlipayConfiguration Setting
        {
            get
            {
                if (setting == null)
                {
                    ExeConfigurationFileMap exeMap = new ExeConfigurationFileMap()
                    {
                        ExeConfigFilename = "AliPay.config"
                    };
                    Configuration config = ConfigurationManager.OpenMappedExeConfiguration(exeMap,
                        ConfigurationUserLevel.None);

                    setting = (AlipayConfiguration) config.GetSection("alipayConfig");
                }

                return setting;
            }
        } 

        /// <summary>
        /// Partner
        /// </summary>
        [ConfigurationProperty("Partner", IsRequired = true)]
        public string Partner
        {
            get { return (string)this["Partner"]; }
            set { this["Partner"] = value; }
        }

        /// <summary>
        /// Key
        /// </summary>
        [ConfigurationProperty("Key", IsRequired = true)]
        public string Key
        {
            get { return this["Key"].ToString(); }
            set { this["Key"] = value; }
        }

        /// <summary>
        /// Email
        /// </summary>
        [ConfigurationProperty("Email", IsRequired = true)]
        public string Email
        {
            get { return (string)this["Email"]; }
            set { this["Email"] = value; }
        }
    }
}



3.然後在Program.cs文件中,輸入如下代碼:

Console.WriteLine("----AlipayConfiguration---------------------");
            AlipayConfiguration settingFirst = AlipayConfiguration.Setting;
            Console.WriteLine("Partner Id:" + settingFirst.Partner);
            Console.WriteLine("Key Id:" + settingFirst.Key);
            Console.WriteLine("Saller Email:" + settingFirst.Email);
            Console.WriteLine("--------------------------------------------------");
            Console.ReadLine();

4.最後的運行效果如下圖:


發佈了40 篇原創文章 · 獲贊 239 · 訪問量 30萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章