System.Configuration命名空间下的关键类

1.ConfigurationManager和 WebConfigurationManager类:
 
    使用 ConfigurationManager 类,可以访问计算机和应用程序的配置信息。ConfigurationManager 是处理客户端应用程序配置文件的首选方法;不推荐使用任何其他方法。对于 Web 应用程序,建议使用 WebConfigurationManager 类。
客户端应用程序在客户端计算机上运行,而 Web 应用程序在客户端连接到的服务器计算机上运行。
可以使用内置的 System.Configuration 类型或从它们派生以处理配置信息。通过使用这些类型,可以直接处理配置信息,且能对配置文件进行扩展以包括自定义信息。

ConfigurationManager 类包括可用来执行以下任务的成员。

      从配置文件中读取一个节。若要访问配置信息,请使用 GetSection。对于像 appSettings 和 connectionStrings 这样的一些节,请使用 AppSettings 和 ConnectionStrings 类。上面提到的方法执行只读操作,使用配置的单个缓存实例,并且可识别多线程。

      将配置文件作为一个整体进行读取和写入。应用程序能够读写任何级别的配置设置,不管是自己的还是其他应用程序或计算机的,也不管是本地的还是远程的。使用 ConfigurationManager 类提供的方法之一可打开类似 Myapp.exe.config 这样的配置文件。这些方法返回一个 Configuration 对象,该对象又公开可用于处理关联的配置文件的方法和属性。这些方法执行读取或写入操作,并于每次写入文件时重新创建配置数据。

      支持配置任务。下列类型用于支持各种配置任务:

SectionInformation
PropertyInformation
PropertyInformationCollection
ElementInformation
ContextInformation
ConfigurationSectionGroup
ConfigurationSectionGroupCollection

除了处理现有的配置信息外,还可以通过扩展内置的配置类型(如 ConfigurationElement、ConfigurationElementCollection、ConfigurationProperty 和 ConfigurationSection 类),来创建和处理自定义配置元素。有关如何以编程方式扩展内置配置类型的示例,参见 ConfigurationSection。有关如何使用基于属性的模型扩展内置配置类型的示例,请参见 ConfigurationElement。

Configuration 类允许进行编程访问以编辑配置文件。使用 ConfigurationManager 提供的打开方法中的一种。这些方法返回一个 Configuration 对象,该对象又提供处理基础配置文件所需的方法和属性。可以访问这些文件以便进行读取或写入。 若要读取配置文件,请使用 GetSection 或 GetSectionGroup 读取配置信息。进行读取的用户或过程必须具有下面的权限: 如果应用程序需要对它自己的配置进行只读访问,建议使用 GetSection 方法。此方法提供对当前应用程序的缓存配置值的访问,它的性能比 Configuration 类更好。

2.Configuration 类:

Configuration类实例表示的配置设置的合并视图,这些配置设置适用于特定的物理实体(如计算机)或逻辑实体(如应用程序或网站)。指定的逻辑实体可以存在于本地计算机或远程服务器上。 当某指定的实体没有配置文件时,则 Configuration 对象表示 Machine.config 文件定义的默认配置设置。通过使用该类定义的 Open 配置方法之一,可以获取 Configuration 对象。使用Save方法之一,可以保存Coonfiguration对象的配置信息到磁盘文件中

3. ConfigurationSection 类

    可以使用 ConfigurationSection 实现自定义的节类型。扩展 ConfigurationSection 类,以提供对自定义配置节的自定义处理和编程访问。 所有的默认配置节都由扩展 ConfigurationSection 类的类来表示。

使用 configSections 中的项注册其处理类型。

      3.1 ConfigurationSection实现说明:
      可以使用编程或声明性(属性化)代码编写模型创建自定义配置节。

              3.1.1 编程模型。此模型要求为每个节属性 (Attribute) 创建一个用于获取和/或设置其值的属性 (Property),并将其添加 到基础 ConfigurationElement 基类的内部属性 (Property) 包中。

              3.1.2 声明性模型。这种比较简单的模型也称为属性 (Attribute) 化模型,允许您通过使用属性 (Property) 来定义节属性 (Attribute),并使用属性 (Attribute) 对其进行修饰。这些属性 (Attribute) 将属性 (Property) 类型及其默认值通知给配置系统。配置系统将使用通过反射获取的这些信息为您创建节属性 (Property) 对象并执行所需的初始化。

   3.2 Configuration 是允许进行编程访问以编辑配置文件的类。您可以按照以下说明访问这些文件以进行读写操作。
             3.2.1 读取。使用 GetSection 或 GetSectionGroup 读取配置信息。请注意,进行读取操作的用户或进程必须具有以下权限:
      在当前配置层次结构级别下对配置文件的读取权限。
      对所有父级配置文件进行读取的权限。

      如果应用程序需要对其自己的配置进行只读访问,建议对于 Web 应用程序使用 GetSection 重载方法。或使用 GetSection 方法(针对客户端应用程序)。 这些方法可提供对当前应用程序的缓存配置值的访问,且其性能要好于 Configuration 类。
      如果使用带有路径参数的静态 GetSection 方法,则该路径参数必须引用代码正在运行的应用程序,否则,该参数将被忽略,并返回当前正在运行的应用程序的配置信息。
             3.2.2 写入。可使用 Save 方法之一写入配置信息。请注意,进行写入操作的用户或进程必须具有以下权限:
      对当前配置层次结构级别的配置文件和目录的写入权限。
      对所有配置文件的读取权限。

转载于:https://www.cnblogs.com/ycat/archive/2006/08/19/481083.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/386484.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

连续四年百度Android岗必问面试题!Android校招面试指南

前言 刚从阿里面试回来,想和大家分享一些我的面试经验,以及面试题目。 这篇文章将会更加聚焦在面试前需要看哪些资料,一些面试技巧以及一些这次的面试考题。 面试经历 7月确定想走后开始看各种面经,复习基础知识,月…

Spring Boot教程(11) – 理解注解@ControllerAdvice

之前,我们介绍过ModelAttribute和ExceptionHandler,前者可以往请求的Model里加数据,后者可以接受请求处理方法抛出的异常。但是他们放在控制器(Controller)里的时候,作用范围是有限的,只管当前控制器里的方法。如果你有几百个控制…

透彻解析!字节跳动Android实习面试凉凉经,年薪超过80万!

什么是Kotlin? Kotlin,如前面所说,它是JetBrains开发的基于JVM的语言。JetBrains因为创造了一个强大的Java开发IDE被大家所熟知。Android Studio,官方的Android IDE,就是基于Intellij,作为一个该平台的插件。 Kotli…

synchronized 底层如何实现?什么是锁升级、降级?

synchronized 底层如何实现?什么是锁升级、降级? synchronized 代码块是由一对 monitorenter/monitorexit 指令实现的,Monitor 对象是同步的基本实现单元。 https://docs.oracle.com/javase/specs/jls/se10/html/jls-8.html#d5e13622 在Jav…

Spring主要用到两种设计模式

Spring主要用到两种设计模式 1、工厂模式 Spring容器就是实例化和管理全部Bean的工厂。 工厂模式可以将Java对象的调用者从被调用者的实现逻辑中分离出来。 调用者只关心被调用者必须满足的某种规则,这里的规则我们可以看做是接口,而不必关心实例的具体实…

意外收获字节跳动内部资料,已开源

前言 每年的3、4月份是各大企业为明年拓展业务大量吸纳人才的关键时期,招聘需求集中、空缺岗位多,用人单位也习惯在初秋进行大规模招聘。 金九银十,招聘旺季,也是一个求职旺季。 不打无准备的仗,在这种关键时期&…

OpenJDK研究

这里以32位Windows 7为例 安装必须的软件 JDK1.8CygwinMicrosoft Visual Studio 2010 (请下载英文版) 这里就不介绍怎么安装这些软件了,假设安装后的目录名分别是: (请根据你的实际情况调整这些目录名) D:\JavaSE1.8 D:\Cygwin D:\VS2010 增加环境变…

猎头文章(一)

(一)从来没有想过自己会加入这一行, 从开始自己喜欢的专业通讯, 到后来喜欢的管理,,幻想过是专业高手, 幻想过管理专家, 却从来没有想过进入这一行,但 真的在我刚刚离开校…

成功跳槽百度工资从15K涨到28K,威力加强版

前言 看到一篇文章中提到“最近几年国内的初级Android程序员已经很多了,但是中高级的Android技术人才仍然稀缺“,这的确不假,从我在百度所进行的一些面试来看,找一个适合的高级Android工程师的确不容易,一般需要进行大…

Redis下载及安装(windows版)

下载地址 1、Github下载地址:https://github.com/MicrosoftArchive/redis/releases 2、百度网盘下载地址 https://pan.baidu.com/s/1z1_OdNVbtgyEjiktqgB83g 密码:kdfq 安装过程 1.首先先把下载的压缩包解压到一个文件夹中 2.打开cmd指令窗口 3.输入你刚…

成功跳槽百度工资从15K涨到28K,跳槽薪资翻倍

前言 这篇文章主要是分享今年上半年的面试心得,现已就职于某大厂有三个月了,近期有很多公司均已启动秋招,也祝大家在 2020 的下半年面试顺利,获得理想的offer! 之前找工作的那段时间感想颇多,总结一点面试…

分布式锁RedLock的java实现Redisson

1. 概述Redisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid)。它不仅提供了一系列的分布式的Java常用对象,还提供了许多分布式服务。其中包括(BitSet, Set, Multimap, SortedSet, Map, List, Queue, BlockingQueue,…

我三年开发经验,从字节跳动抖音离职后,看看这篇文章吧!

最新BAT大厂面试者整理的Android面试题目! 近期根据网友分享大厂面试题目,今天我将网友面试的BAT等大厂Android面试题目整理出来,希望能够帮助大家! 珍藏版(1)——高级 UI 晋升 第一节、触摸事件分发机制…

arthas命令redefine实现Java热更新

Arthas非常重要的命令redefine,主要作用是加载外部的.class文件,用来替换JVM已经加载的类,总结起来就是实现了Java的热更新。 redefine在一下几种情况中会失败:1、增加了field;2、增加了method;3、替换正在…

安装 ZendServer-CE 可能遇到的问题

安装后,打开http://localhost:10081/ZendServer 出现如下页面. Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, adminexample.com and inform them…

Elk7.2 Docker

正如官方所说的那样 https://www.elastic.co/guide/en/elasticsearch/reference/current/vm-max-map-count.html,Elasticsearch默认使用mmapfs目录来存储索引。操作系统默认的mmap计数太低可能导致内存不足,我们可以使用下面这条命令来增加内存 为了防止…

我了解到的面试的一些小内幕!附面试题答案

背景 首先我是个菜鸡,工资也低的一笔。 刚毕业时候在一家国企上班干 app 开发,干了快两年的时候,跳槽到了一家伪大厂干安全。投了不少简历都没有回音,只有这加伪大厂要我就来了。当时说好了会接触一些底层的东西,然而…

学习单调队列小结

因为一直在听身边的人说什么单调队列/斜率优化dp/背包,(ps:我也不清楚这样称呼对不对,因为我真心是没见过这些东西)我都觉得那是神一样的东西。终于抽出时间学了一下。 昨天在朋友一本书里面看到一句话,这里先跟大家分享一下: 没有…

@Async join

直接贴代码 自定义线程池 package com.xh.lawsuit.rest.modular.example; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecu…

我们究竟还要学习哪些Android知识?完整版开放下载

前言 移动研发火热不停,越来越多人开始学习 android 开发。但很多人感觉入门容易成长很难,对未来比较迷茫,不知道自己技能该怎么提升,到达下一阶段需要补充哪些内容。市面上也多是谈论知识图谱,缺少体系和成长节奏感&a…