惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Martin Fowler
Martin Fowler
Jina AI
Jina AI
J
Java Code Geeks
Microsoft Security Blog
Microsoft Security Blog
Recent Announcements
Recent Announcements
I
InfoQ
L
LangChain Blog
The Cloudflare Blog
IT之家
IT之家
博客园 - 叶小钗
Apple Machine Learning Research
Apple Machine Learning Research
B
Blog
A
About on SuperTechFans
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Last Week in AI
Last Week in AI
Blog — PlanetScale
Blog — PlanetScale
罗磊的独立博客
云风的 BLOG
云风的 BLOG
Microsoft Azure Blog
Microsoft Azure Blog
Engineering at Meta
Engineering at Meta
F
Fortinet All Blogs
博客园 - 聂微东
美团技术团队
博客园_首页

博客园 - 博客人

Asp.net2.0页面的生命周期 写有效率的SQL查询(V) aspx页面事件执行顺序 如何从优化SQL入手提高数据仓库的ETL效率(转载) 简单的3个SQL视图搞定所有SqlServer数据库字典 (转载) IIS的各种身份验证详细测试 .Net专题(C# 中的委托和事件) - Part.1 创建X509证书,并获取证书密钥的一点研究 Url重写 asp.net中数据校验部分的封装与应用 SQL Server 索引结构及其使用(一) asp.net2.0导出pdf文件完美解决方案 Web Service 中的身份验证策略--使用自定义SOAP 标题 ASP.NET 2.0加密Web.config 配置文件 WebService中使用自定义类的解决方法(5种) Web Service Authentication + MD5 [from] MS-SQL数据库开发常用汇总和t-sql技巧集锦 [原创] 如何追踪每一笔记录的来龙去脉:一个完整的Audit Logging解决方案—Part I 通用异常处理框架
如何使用.NET配置文件(转载)
博客人 · 2007-04-16 · via 博客园 - 博客人

        相应访问代码如下:       

string fileName = System.Configuration.ConfigurationSettings.AppSettings.Get("LogFile");

     2. 自定义配置节(section)名称
        比如,我们要使用下面的配置结构,将配置信息归类分组:

        但是光这样子说明是不行的。没有声明,是不能使用自定义的配置段。我们必须要在配置文件前面加入声明:  


  
<configSections>
    
<sectionGroup name="myConfig">
         
<section name="myDictionary"
            type
="System.Configuration.NameValueSectionHandler, System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
        
<section name="myNameValue"
            type
="System.Configuration.DictionarySectionHandler, System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
        
<section name="myInfo"
            type
="System.Configuration.SingleTagSectionHandler, System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
    
sectionGroup>
  
configSections>  

    声明和配置的关系,示意图如下:
        
    由图上可以看出,NameValueSectionHandler和DictionarySectionHandler在定义配置文件的内容形式上是一样的,都是用来设置内容的。只是返回到C#中的类不太一样,可以参考下面的代码示例。
    另外,如果不关心Handler类的版本等信息,可以直接省略。如NameValueSectionHandler可以直接如下声明:

<section name="myDictionary"            type="System.Configuration.NameValueSectionHandler, System" />

    把上面的声明段放入配置文件中,我们的配置结构就可以正常使用了。声明中,用来定义不含配置数据的节的名称。

用来定义含有自定义配置数据的节的名称。
用来指定定义配置数据的类型。.NET已经定义了3种配置类型:
  a. NameValueSectionHandler
        相应访问代码如下: 

  b. DictionarySectionHandler
        相应访问代码如下:

  c. SingleTagSectionHandler
        相应访问代码如下:   

        这三种类型的详细信息,可以参考 MSDN 文档。同时.NET 还定义了IgnoreSectionHandler类型,为 System.Configuration 之外的系统所读取和处理的配置节提供节处理程序定义。
        除此之外,.NET提供了IConfigurationSectionHandler接口,这样我们还可以自行进行扩展,以设计出我们自已的配置形式。

        3. 自定义配置结构 (使用IConfigurationSectionHandler)
 假设有以下的配置信息,其在MyInfo可以重复许多次,那么应如何读取配置呢?这时就要使用自定义的配置程序了。

 访问代码如下:

 为了能使用上面的访问代码来访问配置结构,我们需要生成一个特定的配置读取类(ConfigurationSectionHandler),例子很简单,就不多做说明了:

 然后,我们再定义配置说明。其中,myNamespace.MyInfoSectionHandler 是MyInfoSectionHandler类的带名字空间的完整名称;myApp 则是定义MyInfoSectionHandler类的程序集不带扩展名的名字(如myApp.dll或myApp.exe):

 根据上面的例子,我们可以使用IConfigurationSectionHandler来实现任意的配置文件结构。