net 中web.config单一解决方法 (其他配置引入方式)
近期一个项目需要写许多的配置项,发现在单个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单一解决方法 (其他配置引入方式)的更多相关文章
- IIS上虚拟站点的web.config与主站点的web.config冲突解决方法 分类: ASP.NET 2015-06-15 14:07 60人阅读 评论(0) 收藏
IIS上在主站点下搭建虚拟目录后,子站点中的<system.web>节点与主站点的<system.web>冲突解决方法: 在主站点的<system.web>上一级添 ...
- IIS上虚拟目录下站点的web.config与根站点的web.config冲突解决方法
IIS7.5上在站点下部署虚拟目录,访问虚拟目录下的项目提示与父节点配置冲突.,节点与的<system.web>节点与主站点的<system.web>冲突解决方法: 在站点下的 ...
- C#中web.config文件详解
C#中web.config文件详解 一.认识Web.config文件 Web.config 文件是一个XML文本文件,它用来储存 ASP.NET Web 应用程序的配置信息(如最常用的设置ASP.NE ...
- Asp.net中web.config配置文件详解(一)
本文摘自Asp.net中web.config配置文件详解 web.config是一个XML文件,用来储存Asp.NET Web应用程序的配置信息,包括数据库连接字符.身份安全验证等,可以出现在Asp. ...
- Asp.net中web.config配置文件详解
Web.config文件是一个XML文本文件,它用来储存 ASP.NET Web 应用程序的配置信息(如最常用的设置ASP.NET Web 应用程序的身份验证方式),它可以出现在应用程序的每一个目录中 ...
- SRX550路由器缓存满了无法在web页面操作解决方法
SRX550路由器缓存满了无法在web页面操作解决方法 首页出现下图为满的标志,我这个文档就是解决这中情况,让web页面可以操作的 1. 打开命令行,输入用户密码,进入路由器 注意:这里使用te ...
- (转)ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务 的解决方法
早上同事用PL/SQL连接虚拟机中的Oracle数据库,发现又报了"ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务"错误,帮其解决后,发现很多人遇到过这样的问 ...
- ORA-01652:无法通过128(在表空间temp中)扩展temp段 解决方法
ORA-01652:无法通过128(在表空间temp中)扩展temp段 解决方法 (2016-10-21 16:49:53) 今天在做一个查询的时候,报了一个"ORA-01652无法通过 ...
- Oracle中的 UPDATE FROM 解决方法
转:http://www.cnblogs.com/JasonLiao/archive/2009/12/23/1630895.html Oracle中的 UPDATE FROM 解决方法 在表的更新操作 ...
随机推荐
- js事件中的event对象
addEvent(oDiv,"click",function(event){ console.log(event.bubbles+"事件是否冒泡"); cons ...
- rpm不用yum安装rabbitMQ
1.安装erlang 下载 esl-erlang_19.0~centos~6_amd64.rpm 打开https://www.erlang-solutions.com/resources/downlo ...
- jenkins+ant+jmeter html报告文件作为附件发送(ant-jmeter支持javamail)
前言:由于ant-jmeter目前的版本不支持javamail,也就是说发送邮件时只能借助jenkins自带的发送邮件插件来发送报告. 但是jenkins发送邮件支持发送邮件内容(且有价值.有营养的内 ...
- ios runtime 打印内 内部调用的属性
unsigned int count = 0; // 拷贝出所有的成员变量列表 Ivar *ivars = class_copyIvarList([UITextField class], &c ...
- Building Particle Filters and Particle MCMC in NIMBLE
This example shows how to construct and conduct inference on a state space model using particle filt ...
- CocoaPods 安装使用教程
CocoaPods 是比较好的第三方类库管理工具.可通过 terminal 命令进行第三方类库的安装,非常方便. 安装: Mac terminal 输入:gem install cocoapods 若 ...
- js继承之原型链继承
面向对象编程都会涉及到继承这个概念,JS中实现继承的方式主要是通过原型链的方法. 一.构造函数.原型与实例之间的关系 每创建一个函数,该函数就会自动带有一个 prototype 属性.该属性是个指针, ...
- 深度解析PHP数组函数array_combine
前些天写了一篇关于array_merge的函数解析. 今天来看一个新的函数array_combine() 此函数一共有两个参数,一个是合并后数组的键名,另一个为键值. 注意:合并后数组的键名放在第一个 ...
- 使用nodeJS实现前端项目自动化之项目构建和文件合并
前面的话 一般地,我们使用构建工具来完成项目的自动化操作.本文主要介绍如何使用nodeJS来实现简单的项目结构构建和文件合并 项目构建 假设,最终实现的项目名称为'test',结构如下图所示 那么,首 ...
- go服务端----使用dotweb框架搭建简易服务
使用dotweb框架搭建简易服务 go语言web框架挺多的,所谓琳琅满目,里面也有很多优秀的,比如echo.beego等,但体验下来,总是觉得哪里有点小疙瘩,后来才明白过来,echo太简单,很多日常使 ...