.net 自定义配置文件

两个部分实现,

分别实现 ConfigurationSectionGroup,ConfigurationSection

上面是配置文件配置项指定,

 <configSections>
    <sectionGroup name="ftyGroup" type="MxWeiXinPF.WS.common.Configurations.SectionGroup,MxWeiXinPF.WS"> 
      <section name="Sections" type="MxWeiXinPF.WS.common.Configurations.ServicesConfigurationSection,MxWeiXinPF.WS"/>
    </sectionGroup>  
  </configSections>

 

样例,复制一个SB的写法

  <!--微信公众平台-->
  <ftyGroup>
    <Sections>
      <WxConfigs> 
        <WxConfig MemberID="xx" WID="1" AppID="xx" AppSecret="xx" /> 
      </WxConfigs> 
      
      <Security userName="xx" pwd="xx" SymmetryKey="xx" />

      <Templates>
        <Template  WID="1" Key="t1" Value="-" />
        <Template  WID="1" Key="t2" Value="-" />
      </Templates>
      
    </Sections>
  </ftyGroup> 

 

实现的过程,先要有一个SectionGroup,来看

    using System.Configuration;

    public class SectionGroup : ConfigurationSectionGroup
    {
        public ServicesConfigurationSection FYTSections
        {
            get
            {
                return (base.Sections["Sections"] as ServicesConfigurationSection);
            }
        }
    }

然后实现一个ConfigurationSection,来,配置结点

    using System.Configuration;

    public class ServicesConfigurationSection : ConfigurationSection
    {
        /// <summary>
        /// 微信公众平台配置
        /// </summary>
        [ConfigurationProperty("WxConfigs", IsDefaultCollection = false)]
        public WxConfigElementCollection WxConfigs
        {
            get
            {
                return (WxConfigElementCollection)base["WxConfigs"];
            }


        }
这个是键值对的,其它的是List结构的
        /// <summary>
        /// 加密配置
        /// </summary>
        [ConfigurationProperty("Security", IsDefaultCollection = false)]
        public FytSecurityElement Security
        {
            get
            {
                return (FytSecurityElement)base["Security"];
            }


        }

        /// <summary>
        /// 微信公众号模板
        /// </summary>
        [ConfigurationProperty("Templates", IsDefaultCollection = false)]
        public TemplateElementCollection Templates
        {
            get
            {
                return (TemplateElementCollection)base["Templates"];
            }


        }
    }

然后是ConfigurationElementCollection,元素集合,这里对应的是上面的那个List结构,键值对不要这个,直接下面的结点元素就行了

    using System;
    using System.Configuration;
    using System.Reflection;

    /// <summary>
    /// 微信公众平台配置
    /// </summary>
    [ConfigurationCollection(typeof(WxConfigElement), AddItemName = "WxConfig")]
    public class WxConfigElementCollection : ConfigurationElementCollection
    {
        protected override ConfigurationElement CreateNewElement()
        {
            return new WxConfigElement();
        }

        protected override object GetElementKey(ConfigurationElement element)
        {
            return ((WxConfigElement)element).MemberID;
        }

        public WxConfigElement this[int index]
        {
            get
            {
                return (WxConfigElement)base.BaseGet(index);
            }
        }

        public WxConfigElement this[string type]
        {
            get
            {
                return (WxConfigElement)base.BaseGet(type);
            }
        }
    }

 

最后是ConfigurationElement,元素,是吧

 using System;
    using System.Configuration;

    /// <summary>
    /// 微信公众平台配置
    /// </summary>
    public class WxConfigElement : ConfigurationElement
    { 
        [ConfigurationProperty("MemberID", IsRequired = false, IsKey=true)]
        public string MemberID
        {
            get
            {
                return (string)base["MemberID"];
            }
            set
            {
                base["MemberID"] = value;
            }
        }

        [ConfigurationProperty("WID", IsRequired = false, IsKey = true)]
        public string WID
        {
            get
            {
                return (string)base["WID"];
            }
            set
            {
                base["WID"] = value;
            }
        }

        [ConfigurationProperty("AppID", IsRequired = false)]
        public string AppID
        {
            get
            {
                return (string)base["AppID"];
            }
            set
            {
                base["AppID"] = value;
            }
        }

        [ConfigurationProperty("AppSecret", IsRequired = false)]
        public string AppSecret
        {
            get
            {
                return (string)base["AppSecret"];
            }
            set
            {
                base["AppSecret"] = value;
            }
        } 
    }

搞完了,跑一跑,上面有个点注意一下,这里的例子包含有键值对和数组两种实现

 

 

 

 

 

 

 

 

 

 

 

 

 

作者: zc
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载于:https://www.cnblogs.com/jmzs/p/4932450.html

概述 本平台主要功能是针对微信商家公众号提供与众不同的、有针对性的营销推广服务。通过沐雪微信平台,用户可以轻松管理自己的微信各类信息,对微信公众账号进行维护、开展智能机器人、在线发优惠劵、抽奖、刮奖、派发会员卡、打造微官网、开启微团购等多种活动,对微信营销实现有效监控,极大扩展潜在客户群和实现企业的运营目标。沐雪微信平台很好的弥补了微信公众平台本身功能不足、针对性不强、交互不便利的问题,为商家公众账号提供更为贴心的、且是核心需求的功能和服务。在线优惠劵、转盘抽奖、微信会员卡等推广服务更是让微信成为商家推广的利器。智能客服的可调教功能让用户真正从微信繁琐的日常客服工作中解脱出来,真正成为商家便利的新营销渠道。 二、源码特点 1、微信公众平台开发,对于公众平台所有功能进行完整开发。 2、多用户:可同时进行多公众号的管理和配置。 3、直接性:购买者可直接购买细微修改即是成品的平台商品。 4、开发语言:asp.net,C# ,webform,数据库sqlserver 2005 三、功能介绍 1、菜单回复:关注时回复、默认回复、文本回复、图文回复、语音回复、请求回复、LBS回复。 2、自定义菜单:公众号自定义菜单设置 3、用户列表管理:获取关注公众号的账户信息进行管理 4、微官网:各种微官网模板可自行配置,头部幻灯片,底部,分类模块配置,内容配置 5、微商城:商城模板配置、产品分类管理、商品信息管理、商品录入、客户资源管理、订单管 理、物流配送方式设置 6、支付方式:微信支付,货到付款。 7、微汽车[大模块]、微酒店、点餐系统 8、微会员卡:会员卡商家、会员卡商城、会员卡头部广告设计 9、用户管理:微信用户管理、系统角色管理、系统操作日志 10、后台菜单:后台导航菜单管理 11、系统设置:网站基本信息设置、功能权限设置、短信平台设置、邮件发送设置、文件上传设 置 12、代理商管理:代理商发展下线。 四、环境要求 开发环境: 操作系统:windows7,8 软件:vs2012+sqlserver2005 发布环境: 操作系统:windows server 2003,2008 软件:.netframework4.0,iis6+,sqlserver 2005 后续会更新vs2017+sql2012 ,新功能的开发
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值