這篇文章記錄下,支付寶配置信息,如何實現自定義配置文件,不用將所有的配置信息都放到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.最後的運行效果如下圖: