自定义Net Configuration 类 - 继承ConfigurationSection

自定义.NET配置节
本文介绍如何在.NET Framework 2.0中通过继承ConfigurationSection来自定义配置文件处理类。示例代码展示了创建自定义配置节的过程,并提供了一个具体的配置文件app.config示例,用于展示如何读取这些自定义配置。
配置文件在应用程序开发中发挥及其重要的作用,使用配置文件可以动态改变应用程序的程序处理逻辑。
在.net framework 2.0平台中更是使得处理配置文件更加方便、灵活。同时微软也提供了自定义配置文件处理类的功能,

实现自定义配置类主要通过继承ConfigurationSection或者实现IConfigurationSectionHandler
这篇文章介绍的方法是继承 ConfigurationSection的 MySampleConfigurationSection

using System;
using System.Collections.Generic;
using System.Text;

using System.Configuration;

namespace ConfigSample
{
    
public class MySampleConfigurationSection : ConfigurationSection
    
{
        
public MySampleConfigurationSection() { }
        
public MySampleConfigurationSection(string attr1)
        
{
            MyAttribute1 
= attr1;
        }


        [ConfigurationProperty(
"myAttribute1",DefaultValue="MyAttribute1-default-value",IsRequired=true)]
        
public string MyAttribute1
        
{
            
get return (string)this["myAttribute1"]; }
            
set this["myAttribute1"= value; }
        }


        [ConfigurationProperty(
"myChildSection")]
        
public MyChildConfigurationElement MyAttributeElement
        
{
            
get return (MyChildConfigurationElement)this["myChildSection"]; }
            
set this["myChildSection"= value; }
        }

       
    }


    
public class MyChildConfigurationElement : ConfigurationElement
    
{
        
public MyChildConfigurationElement() { }

        
public MyChildConfigurationElement(string attr1, string attr2)
        
{
            MyChildAttribute1 
= attr1;
            MyChildAttribute2 
= attr2;
        }


        [ConfigurationProperty(
"myChildAttribute1")]
        
public string MyChildAttribute1
        
{
            
get return (string)this["myChildAttribute1"]; }
            
set this["myChildAttribute1"= value; }
        }


        [ConfigurationProperty(
"myChildAttribute2")]
        
public string MyChildAttribute2
        
{
            
get return (string)this["myChildAttribute2"]; }
            
set this["myChildAttribute2"= value; }
        }

    }

}


测试的app.config 文件
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  
<configSections>
    
<sectionGroup name="mySampleConfigurationSectionGroup">
      
<section name="mySampleConfigurationSection" type="ConfigSample.MySampleConfigurationSection,ConfigSample,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null" allowLocation="true" allowDefinition="Everywhere"/>
    
</sectionGroup>
  
</configSections>
  
<mySampleConfigurationSectionGroup>
    
<mySampleConfigurationSection myAttribute1="MyAttribute1 value">
      
<myChildSection myChildAttribute1="MyChildAttribute1 value" myChildAttribute2="MyChildAttribute2 value" />
    
</mySampleConfigurationSection>
  
</mySampleConfigurationSectionGroup>
</configuration>

测试该Configuration代码
    // get sample configuration section
            MySampleConfigurationSection myConfigSection = (MySampleConfigurationSection)ConfigurationManager.GetSection("mySampleConfigurationSectionGroup/mySampleConfigurationSection");
            
if (myConfigSection != null)
            
{
                txtMyAttribute1.Text 
= myConfigSection.MyAttribute1.ToString();
                txtMyChildAttribute1.Text 
= myConfigSection.MyAttributeElement.MyChildAttribute1.ToString();
                txtMyChildAttribute2.Text 
= myConfigSection.MyAttributeElement.MyChildAttribute2.ToString();
            }

            
else
            
{
                MessageBox.Show(
"Cannot read the sample configuration value");
            }


特别注意的是configure在SectionGroup的调用路径
ConfigurationManager.GetSection("mySampleConfigurationSectionGroup/mySampleConfigurationSection")


转载于:https://www.cnblogs.com/zengyongjoy/archive/2007/12/29/1020452.html

乐播投屏是一款简单好用、功能强大的专业投屏软件,支持手机投屏电视、手机投电脑、电脑投电视等多种投屏方式。 多端兼容与跨网投屏:支持手机、平板、电脑等多种设备之间的自由组合投屏,且无需连接 WiFi,通过跨屏技术打破网络限制,扫一扫即可投屏。 广泛的应用支持:支持 10000+APP 投屏,包括综合视频、网盘与浏览器、美韩剧、斗鱼、虎牙等直播平台,还能将央视、湖南卫视等各大卫视的直播内容一键投屏。 高清流畅投屏体验:腾讯独家智能音画调校技术,支持 4K 高清画质、240Hz 超高帧率,低延迟不卡顿,能为用户提供更高清、流畅的视觉享受。 会议办公功能强大:拥有全球唯一的 “超级投屏空间”,扫码即投,无需安装。支持多人共享投屏、远程协作批注,PPT、Excel、视频等文件都能流畅展示,还具备企业级安全加密,保障会议资料不泄露。 多人互动功能:支持多人投屏,邀请好友加入投屏互动,远程也可加入。同时具备一屏多显、语音互动功能,支持多人连麦,实时语音交流。 文件支持全面:支持 PPT、PDF、Word、Excel 等办公文件,以及视频、图片等多种型文件的投屏,还支持网盘直投,无需下载和转格式。 特色功能丰富:投屏时可同步录制投屏画面,部分版本还支持通过触控屏或电视端外接鼠标反控电脑,以及在投屏过程中用画笔实时标注等功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值