这篇文章记录下,支付宝配置信息,如何实现自定义配置文件,不用将所有的配置信息都放到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="service@jucheap.com"/>
</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.最后的运行效果如下图: