近期一个项目需要写许多的配置项,发现在单个web.config里面写的话会很乱也难于查找

所以搜了一下解决了,记录下来

一、   webconfig提供了引入其他config的方式

<connectionStrings configSource="Configs\database.config" />

这个是连接字符串的配置你可以在database。config里面写很多链接字符串以备自己调用

database。config里面的内容如下:

<?xml version="1.0" encoding="utf-8"?>
<connectionStrings>
<add name="SDbContext" connectionString="Server=.;Initial Catalog=Self;User ID=sa;Password=password" providerName="System.Data.SqlClient" /> </connectionStrings>

<appSettings configSource="Configs\system.config" />

这个是键值对的方式存放代码如下:

<?xml version="1.0" encoding="utf-8"?>
<appSettings>
<!-- ================== 1:开发系统相关配置 ================== -->
<!-- 登陆提供者模式:Session、Cookie-->
<add key="LoginProvider" value="Cookie" />
<!-- 启用系统日志-->
<add key="IsLog" value="true" />
<!-- 数据库超时间-->
<add key="CommandTimeout" value="180" />
<!--启用IP过滤 -->
<add key="IsIPFilter" value="false" />
<!-- ================== 2:系统软件参数配置 ================== -->
<!-- 联系我们 -->
<add key="Contact" value="TE Software(Mobility)" />
<!-- 软件名称 -->
<add key="SoftName" value="Sub Self" />
<!-- 软件版本 -->
<add key="Version" value="1.0" /> <!-- 设置就应用路径 -->
<add key="AppName" value="" /> <!-- 设置就应用路径 -->
<add key="SqlGetBomList" value="" />
</appSettings>

以上两个是不需要特殊的配置的,放到configuration里面 configSections的下面这样就可以

二、下面介绍自定义配置节

<configSections>

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

 </configSections>
<users configSource="users.config"></users>

注意configsections里面的一条,是声明这是以什么组织方式

users.config 里面的内容如下:

<users>
<add key="beijing" value="123"></add>
<add key="tianjin" value="123"></add>
</users>

获取配置的方式:

NameValueCollection users = System.Configuration.ConfigurationManager.GetSection("users") as NameValueCollection;
// Response.Write(users.Keys[0]+"</br>"+users.Keys[1]);
users.Get("beijing");

  三、复杂类型:

复杂类型的声明就不同了

<configSections>

<section name="roles" type="EBuy.Chapter3.NTier.WebUI.RolesConfig, EBuy.Chapter3.NTier.WebUI"/>

</configSections>
<roles configSource="roles.config">
</roles>

内容如下

<roles>
<add username="beijing" password="123"></add>
<add username="tianjin" password="123"></add>
</roles>

获取方式:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace EBuy.Chapter3.NTier.WebUI
{
public class RolesConfig : System.Configuration.IConfigurationSectionHandler
{
public object Create(object parent, object configContext, System.Xml.XmlNode section)
{
return section;
}
}
}
   XmlNode roles= System.Configuration.ConfigurationManager.GetSection("roles") as XmlNode;
Response.Write(roles.ChildNodes [].Attributes["username"].InnerText);

还可以配置为实体

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace EBuy.Chapter3.NTier.WebUI
{
public class RolesConfig : System.Configuration.IConfigurationSectionHandler
{
public object Create(object parent, object configContext, System.Xml.XmlNode section)
{
var list=new List<Role>();
for(int i=0;i<section.ChildNodes.Count;i++)
{
list.Add(new Role (){
Username =section.ChildNodes[i].Attributes["username"].InnerText ,
Password =section.ChildNodes[i].Attributes["password"].InnerText });
}
return list;
}
}
public class Role
{
public string Username { get; set; }
public string Password{get;set;}
}
}
   var roles = System.Configuration.ConfigurationManager.GetSection("roles") as List<EBuy.Chapter3.NTier.WebUI.Role >;
Response.Write(roles.First ().Username);

  

net 中web.config单一解决方法 (其他配置引入方式)的更多相关文章

  1. IIS上虚拟站点的web.config与主站点的web.config冲突解决方法 分类: ASP.NET 2015-06-15 14:07 60人阅读 评论(0) 收藏

    IIS上在主站点下搭建虚拟目录后,子站点中的<system.web>节点与主站点的<system.web>冲突解决方法: 在主站点的<system.web>上一级添 ...

  2. IIS上虚拟目录下站点的web.config与根站点的web.config冲突解决方法

    IIS7.5上在站点下部署虚拟目录,访问虚拟目录下的项目提示与父节点配置冲突.,节点与的<system.web>节点与主站点的<system.web>冲突解决方法: 在站点下的 ...

  3. C#中web.config文件详解

    C#中web.config文件详解 一.认识Web.config文件 Web.config 文件是一个XML文本文件,它用来储存 ASP.NET Web 应用程序的配置信息(如最常用的设置ASP.NE ...

  4. Asp.net中web.config配置文件详解(一)

    本文摘自Asp.net中web.config配置文件详解 web.config是一个XML文件,用来储存Asp.NET Web应用程序的配置信息,包括数据库连接字符.身份安全验证等,可以出现在Asp. ...

  5. Asp.net中web.config配置文件详解

    Web.config文件是一个XML文本文件,它用来储存 ASP.NET Web 应用程序的配置信息(如最常用的设置ASP.NET Web 应用程序的身份验证方式),它可以出现在应用程序的每一个目录中 ...

  6. SRX550路由器缓存满了无法在web页面操作解决方法

    SRX550路由器缓存满了无法在web页面操作解决方法   首页出现下图为满的标志,我这个文档就是解决这中情况,让web页面可以操作的 1.  打开命令行,输入用户密码,进入路由器 注意:这里使用te ...

  7. (转)ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务 的解决方法

    早上同事用PL/SQL连接虚拟机中的Oracle数据库,发现又报了"ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务"错误,帮其解决后,发现很多人遇到过这样的问 ...

  8. ORA-01652:无法通过128(在表空间temp中)扩展temp段 解决方法

    ORA-01652:无法通过128(在表空间temp中)扩展temp段 解决方法 (2016-10-21 16:49:53)   今天在做一个查询的时候,报了一个"ORA-01652无法通过 ...

  9. Oracle中的 UPDATE FROM 解决方法

    转:http://www.cnblogs.com/JasonLiao/archive/2009/12/23/1630895.html Oracle中的 UPDATE FROM 解决方法 在表的更新操作 ...

随机推荐

  1. 2.1 Java程序的构成

    2.1 Java程序的构成 2.1.1逻辑构成 Java源程序逻辑构成分为两大部分:程序头包的引用和类 的定义 1.程序头包的引用 主要是指引用JDK软件包自带的包,也可以是自己定义的类. 引用之后程 ...

  2. WINFORM实现进程信息的查看,listview,点击,右键,右键菜单

    1.   程序设计要求 设计程序来获取计算机中的进程信息 2.程序设计流程图 3.程序设计亮点 (0)程序启动时加载guide引导使用视频 (1)使用Listview控件显示出所有控件的名称. (2) ...

  3. 分布式Java应用与实践 (一)

    一) 分布式Java应用 1.1 基于消息方式实现系统间的通信 数据传输 TCP/IP 可靠的网络传输协议,首先给通信双方建立链接之后再进行数据传输,保证链接及数据传输的可靠,因此会牺牲一些性能 UD ...

  4. Ultimus BPM 房地产与建筑行业应用解决方案

    Ultimus BPM 房地产与建筑行业应用解决方案 行业应用需求 房地产与建筑行业客户业务特点是集团化管控,多区域.多项目.多业态管理,而行业业务往往项目周期长,涉及专业复杂,客户越来越重视管理和跟 ...

  5. CentOS下SparkR安装部署:hadoop2.7.3+spark2.0.0+scale2.11.8+hive2.1.0

    注:之前本人写了一篇SparkR的安装部署文章:SparkR安装部署及数据分析实例,当时SparkR项目还没正式入主Spark,需要自己下载SparkR安装包,但现在spark已经支持R接口,so更新 ...

  6. node使用消息队列RabbitMQ一

    基础发布和订阅 消息队列RabbitMQ使用 1 安装RabbitMQ服务器 安装erlang服务 下载地址 http://www.erlang.org/downloads 安装RabbitMQ 下载 ...

  7. 目前微信 微博 新浪 豆瓣等所有分享的js插件

    原理 功能 集成微信.微博.开心.豆瓣.人人.qq微博.搜狐.qq空间等分享 即时分享: 默认加载插件,即启动全部分享 定制分享:通过参数配置.静态数据配置 由你决定何时分享,如何分享 扩展: 通过数 ...

  8. cas单点登录系统:客户端(client)详细配置

    最近一直在研究cas登录中心这一块的应用,分享一下记录的一些笔记和心得.后面会把cas-server端的配置和重构,另外还有这几天再搞nginx+cas的https反向代理配置,以及cas的证书相关的 ...

  9. SQL Server使用导入导出向导导入超过4000个字符的字段的数据

    在使用SQL Server导入导出向导导入数据的时候,我们经常会碰到某个单元格的数据超长而被截断报错的情况.本文针对这种场景给出相应的解决方案.   环境描述:SQL Server 2012,文件源: ...

  10. [附录]Discuz X2.5 模板目录结构注释说明

    /template/default/common  公共模板目录全局加载 block_forumtree.htm  DIY论坛树形列表模块 block_thread.htm  DIY帖子模块调用文件 ...