解决在Web.config或App.config中添加自定义配置的方法详解

合集下载

解决在Web.config或App.config中添加自定义配置的方法详解

解决在Web.config或App.config中添加自定义配置的方法详解

解决在Web.config或App.config中添加自定义配置的方法详解本篇文章是对在Web.config或App.config中添加自定义配置的方法进行了详细的分析介绍,需要的朋友参考下.Net中的System.Configuration命名空间为我们在web.config或者app.config中自定义配置提供了完美的支持。

最近看到一些项目中还在自定义xml文件做程序的配置,所以忍不住写一篇用系统自定义配置的随笔了。

如果你已经对自定义配置了如指掌,请忽略这篇文章。

言归正传,我们先来看一个最简单的自定义配置<?xml version="1.0" encoding="utf-8" ?><configuration><configSections><section name="simple"type="ConfigExample.Configuration.SimpleSection,ConfigExample"/></configSections><simple maxValue="20" minValue="1"></simple></configuration>在配置文件中使用自定义配置,需要在configSections中添加一个section元素,并制定此section元素对应的类型和名字。

然后再在configuration根节点下面添加此自定义配置,如上例中的simple节点。

simple节点只有两个整形数的属性maxValue和minValue。

要在程序中使用自定义配置我们还需要实现存取这个配置块的类型,一般需要做如下三件事:1. 定义类型从System.Configuration.ConfigurationSection继承2. 定义配置类的属性,这些属性需要用ConfigurationProperty特性修饰,并制定属性在配置节中的名称和其他一些限制信息3. 通过基类的string索引器实现属性的get ,set非常简单和自然,如下是上面配置类的实现:public class SimpleSection:System.Configuration.ConfigurationSection{[ConfigurationProperty("maxValue",IsRequired=false,DefaultValue=Int32.MaxValue)]public int MaxValue{get{return(int)base["maxValue"];}set{base["maxValue"] = value;}}[ConfigurationProperty("minValue",IsRequired=false,DefaultValue=1)]public int MinValue{get { return (int) base["minValue"];}set { base["minValue"] = value; }}[ConfigurationProperty("enabled",IsRequired=false,DefaultValue=true)]public bool Enable{get{return (bool)base["enabled"];}set{base["enabled"] = value;}}}这样子一个简单的配置类就完成了,怎么在程序中使用这个配置呢?需要使用ConfigurationManager类(要引用System.configuration.dll这个dll只有在.Net2.0之后的版本中才有)的GetSection方法获得配置就可以了。

ASP NET自定义配置文件设置(以及修改Entity Framework数据库连接为自定义字符串)

ASP NET自定义配置文件设置(以及修改Entity Framework数据库连接为自定义字符串)

自定义配置文件设置在开发的过程中,我们经常会遇到在开发、测试、发布部署等不同的环境下使用不同的连接字符串,WebAPI的连接。

为了避免频频复杂的修改各个配置,因此用到了自定义配置文件设置。

此篇文章使用的自定义配置文件方法为:web.config 增加自定义Section节,相关配置全部放到webconfig。

一、配置Web.config文件。

1.0首先需要在configuration节点下的configSections节点中进行注册,如下:<section name="ConnectionStringSection"type="CustomConfig.Configrationner.ConnectionStringSection, CustomConfig" />注:CustomConfig.Configrationner.ConnectionStringSection指的是:此section 可解析的实体所存放的【完整的命名空间.类名】,CustomConfig 指的是:此section所在的程序集(dll)的名称。

2.0然后将ConnectionStringSection节点配置在configuration节点下即可,具体如下:二、配置调用ConfigrationSection的文件。

1.0首先要访问这个自定义节点,需要通过类来配置,我们得首先定义一个父节点类,父节点类包含子节点集合,如下:namespace CustomConfig.Configrationner{public class ConnectionStringSection : ConfigurationSection{[ConfigurationProperty("Publish")]public ConnectionStringCollection Publish{get { return (ConnectionStringCollection)this["Publish"]; }}[ConfigurationProperty("Develop")]public ConnectionStringCollection Develop{get { return (ConnectionStringCollection)this["Develop"]; }}[ConfigurationProperty("Test")]public ConnectionStringCollection Test{get { return (ConnectionStringCollection)this["Test"]; }}}}2.0子节点集合再包含子节点元素,如下namespace CustomConfig.Configrationner{public class ConnectionStringCollection : ConfigurationElementCollection{protected override ConfigurationElement CreateNewElement() {return new NameValueSettings();}protected override object GetElementKey(ConfigurationElement element) {return ((NameValueSettings)element).Name;}//写一个索引器,方便的访问该集合中的元素。

net中web.config一个配置文件解决方法(其他配置文件引入方式)

net中web.config一个配置文件解决方法(其他配置文件引入方式)

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="ValueSectionHandler"/></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 [0].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);。

自定义配置文件

自定义配置文件
<addkey="returnValue"value="" />
<addkey="pwdPattern"value="" />
<addkey="userPattern"value="" />
</appSettings>
4.读取与更新app.config
providerName="System.Data.SqlClient" />
</connectionStrings>
3. appSettings配置节:
appSettings配置节为整个程序的配置,如果是对当前用户的配置,请使用userSettings配置节,其格式与以下配置书写要求一样。
<!--进销存管理系统初始化需要的参数-->
<appSettings>
<clear />
<addkey="userName"value="" />
<addkey="password"value="" />
<addkey="Department"value="" />
// 打开可执行的配置文件*.exe.config
Configuration config =
ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

Web.config详解

Web.config详解

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

当你通过.NET新建一个Web应用程序后,默认情况下会在根目录自动创建一个默认的Web.config文件,包括默认的配置设置,所有的子目录都继承它的配置设置。

如果你想修改子目录的配置设置,你可以在该子目录下新建一个Web.config文件。

它可以提供除从父目录继承的配置信息以外的配置信息,也可以重写或修改父目录中定义的设置。

(一).Web.Config是以XML文件规范存储,配置文件分为以下格式1.配置节处理程序声明特点:位于配置文件的顶部,包含在<configSections>标志中。

2.特定应用程序配置特点: 位于<appSetting>中。

可以定义应用程序的全局常量设置等信息.3.配置节设置特点: 位于<system.Web>节中,控制运行时的行为.4.配置节组特点: 用<sectionGroup>标记,可以自定义分组,可以放到<configSections>内部或其它<sectionGroup>标记的内部.(二).配置节的每一节1.<configuration>节根元素,其它节都是在它的内部.2.<appSetting>节此节用于定义应用程序设置项。

对一些不确定设置,还可以让用户根据自己实际情况自己设置用法:I.<appSettings><add key="Conntction" value="server=192.168.85.66;userid=sa;password=;database=Info;"/><appSettings>定义了一个连接字符串常量,并且在实际应用时可以修改连接字符串,不用修改程式代码. II.<appSettings><add key="ErrPage" value="Error.aspx"/><appSettings>定义了一个错误重定向页面.3.<compilation>节格式:<compilationdefaultLanguage="c#"debug="true"/>I.default language: 定义后台代码语言,可以选择C#和两种语言.IIdebug : 为true时,启动aspx调试;为false不启动aspx调试,因而可以提高应用程序运行时的性能。

C#应用程序配置文件App.Config和web.config

C#应用程序配置文件App.Config和web.config

C#应⽤程序配置⽂件App.Config和web.config应⽤程序配置⽂件,对于是 web.config,对于WINFORM程序是 App.Config(ExeName.exe.config)。

配置⽂件,对于程序本⾝来说,就是基础和依据,其本质是⼀个xml⽂件。

对于配置⽂件的操作,从.NET 2.0 开始,就⾮常⽅便了,提供了 System [.Web] .Configuration 这个管理功能的NameSpace,要使⽤它,需要添加对 System.configuration.dll的引⽤。

我们以最常见的 AppSettings ⼩节来作为例⼦:假设有如下的配置⽂件内容:<?xml version="1.0" encoding="utf-8" ?><configuration><appSettings><add key="y" value="this is Y"/></appSettings></configuration>⼀、1.命名空间 对于 程序,使⽤ System.Web.Configuration.WebConfigurationManager;2.读取 System.Web.Configuration.WebConfigurationManager.AppSettings[“y”];3.添加需要有写权限:Configuration config = WebConfigurationManager.OpenWebConfiguration(null);AppSettingsSection app = config.AppSettings;app.Settings.Add("x", "this is X");config.Save(ConfigurationSaveMode.Modified);4.修改Configuration config = WebConfigurationManager.OpenWebConfiguration(null);AppSettingsSection app = config.AppSettings; //app.Settings.Add("x", "this is X");app.Settings["x"].Value = "this is not Y";config.Save(ConfigurationSaveMode.Modified);5.删除Configuration config = WebConfigurationManager.OpenWebConfiguration(null);AppSettingsSection app = config.AppSettings;app.Settings.Remove("x");config.Save(ConfigurationSaveMode.Modified);.⼆、WINFORM / CONSOLE1.命名空间 对于WINFORM程序,使⽤ System.Configuration.ConfigurationManager;2.读取 System.Configuration.ConfigurationManager.AppSettings[“y”];3.添加Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);AppSettingsSection app = config.AppSettings;app.Settings.Add("x", "this is X");config.Save(ConfigurationSaveMode.Modified);4.修改Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);AppSettingsSection app = config.AppSettings; //app.Settings.Add("x", "this is X");app.Settings["x"].Value = "this is not Y";config.Save(ConfigurationSaveMode.Modified);ConfigurationManager.RefreshSection("appSettings");// 刷新命名节,在下次检索它时将从磁盘重新读取它。

Web.config配置文件详解(新手必看)

Web.config配置文件详解(新手必看)

Web.c‎o nfig‎配置文件详‎解(新手必‎看)‎花了点时间‎整理了一下‎A SP.N‎E T We‎b.con‎f ig配置‎文件的基本‎使用方法。

‎很适合新手‎参看,由于‎W eb.c‎o nfig‎在使用很灵‎活,可以自‎定义一些节‎点。

所以这‎里只介绍一‎些比较常用‎的节点。

‎<?xm‎l ver‎s ion=‎"1.0"‎?><‎!--注意‎:除了手‎动编辑此文‎件以外,您‎还可以使用‎Web ‎管理工具来‎配置应用程‎序的设置。

‎可以使用‎V isua‎l Stu‎d io 中‎的“网站”‎->“As‎‎配置”选‎项。

设‎置和注释的‎完整列表在‎mach‎i ne.c‎o nfig‎.comm‎e nts ‎中,该文件‎通常位于‎"Wind‎o ws"M‎i cros‎o ft.N‎e t"Fr‎a mewo‎r k"v2‎.x"Co‎n fig ‎中。

-->‎<!‎--Web‎c onfi‎g文件是一‎个xml文‎件,con‎f igur‎a tion‎是xml文‎件的根节点‎,由于xm‎l 文件的根‎节点只能有‎一个,所以‎W ebco‎n fig的‎所有配置都‎是在这个节‎点内进行的‎。

-->‎<con‎f igur‎a tion‎>‎<!--指‎定配置节和‎命名空间声‎明。

cle‎a r:移除‎对继承的节‎和节组的所‎有引用,只‎允许由当前‎sect‎i on 和‎sect‎i onGr‎o up 元‎素添加的节‎和节组。

r‎e move‎:移除对继‎承的节和节‎组的引用。

‎se‎c tion‎:定义配置‎节处理程序‎与配置元素‎之间的关联‎。

sect‎i onGr‎o up:定‎义配置节处‎理程序与配‎置节之间的‎关联。

--‎><‎c onfi‎g Sect‎i ons>‎‎<sec‎t ionG‎r oup ‎n ame=‎"syst‎e m.we‎b.ext‎e nsio‎n s"t‎y pe="‎S yste‎m.Web‎.Conf‎i gura‎t ion.‎S yste‎m WebE‎x tens‎i onsS‎e ctio‎n Grou‎p,Sy‎s tem.‎W eb.E‎x tens‎i ons,‎Vers‎i on=1‎.0.61‎025.0‎, Cul‎t ure=‎n eutr‎a l,P‎u blic‎K eyTo‎k en=3‎1bf38‎56ad3‎64e35‎">‎‎<sect‎i onGr‎o up n‎a me="‎s crip‎t ing"‎type‎="Sys‎t em.W‎e b.Co‎n figu‎r atio‎n.Scr‎i ptin‎g Sect‎i onGr‎o up, ‎S yste‎m.Web‎.Exte‎n sion‎s,Ve‎r sion‎=1.0.‎61025‎.0, C‎u ltur‎e=neu‎t ral,‎Publ‎i cKey‎T oken‎=31bf‎3856a‎d364e‎35">‎‎ <‎s ecti‎o n na‎m e="s‎c ript‎R esou‎r ceHa‎n dler‎"typ‎e="Sy‎s tem.‎W eb.C‎o nfig‎u rati‎o n.Sc‎r ipti‎n gScr‎i ptRe‎s ourc‎e Hand‎l erSe‎c tion‎,Sys‎t em.W‎e b.Ex‎t ensi‎o ns, ‎V ersi‎o n=1.‎0.610‎25.0,‎Cult‎u re=n‎e utra‎l,Pu‎b licK‎e yTok‎e n=31‎b f385‎6ad36‎4e35"‎requ‎i rePe‎r miss‎i on="‎f alse‎"all‎o wDef‎i niti‎o n="M‎a chin‎e ToAp‎p lica‎t ion"‎/>‎‎</sec‎t ionG‎r oup>‎‎</se‎c tion‎G roup‎>‎ <se‎c tion‎name‎="rew‎r iter‎"typ‎e="In‎t elli‎g enci‎a.Url‎R ewri‎t er.C‎o nfig‎u rati‎o n.Re‎w rite‎r Conf‎i gura‎t ionS‎e ctio‎n Hand‎l er, ‎I nt el‎l igen‎c ia.U‎r lRew‎r iter‎" />‎</c‎o nfig‎S ecti‎o ns>‎‎<!--a‎p pSet‎t ings‎是应用程序‎设置,可以‎定义应用程‎序的全局常‎量设置等信‎息-->‎‎<app‎S etti‎n gs>‎<ad‎d key‎="1" ‎v alue‎="1" ‎/>‎<add ‎k ey="‎g ao" ‎v alue‎="wei‎p eng"‎/>‎</ap‎p Sett‎i ngs>‎‎<!--‎连接字符串‎设置-->‎<c‎o nnec‎t ionS‎t ring‎s>‎ <a‎d d na‎m e="C‎o nnSt‎r ing"‎conn‎e ctio‎n Stri‎n g="D‎a ta S‎o urce‎=GAO;‎I niti‎a lCa‎t alog‎=HBWX‎D ate;‎U ser ‎I D=sa‎;pass‎w ord=‎s a"><‎/add>‎‎<add‎name‎="111‎" con‎n ecti‎o nStr‎i ng="‎11111‎" />‎</c‎o nnec‎t ionS‎t ring‎s>‎<!‎--指定应‎用子配置设‎置的资源,‎并锁定配置‎设置,以防‎止它们被子‎配置文件重‎写。

在C#类库中使用App.config文件自定义配置

在C#类库中使用App.config文件自定义配置

在C#类库中使⽤App.config⽂件⾃定义配置 做项⽬时,经常需要在⾃⼰设计的类库中使⽤很多⽤户配置。

虽然在应⽤程序的App.config和Web应⽤程序web.config这样的⽂件⾥配置也能满⾜需求,但这样做不仅会让主配置⽂件的内容变得多、杂,还会让模块依赖主程序的配置⽂件。

我们知道在VS中,可以在类库项⽬⾥添加⼀种叫做“应⽤程序配置⽂件”的⽂件,这是标准的.NET配置⽂件,模板⾃带“configuration”元素,编辑时还会有智能提⽰。

但是怎么在程序代码中使⽤写在App.config⾥的配置呢?近⽇在⽹上搜了⼀通,却⼀⽆所获。

于是只好⾃已动⼿! 我以前做的⼀个项⽬⾥,⽤到过类型的实现⽅式。

可以获取在类库App.config⽂件中“appSettings”和“conectionStrings”节添加的⾃定义配置,但是不能⾃定义配置节。

从MSDN上了解到,要想在配置⽂件中⾃定义配置节,需要实现⼀个⾃定义的ConfigurationSection。

两下结合起来,想在类库中⽤App.config彻底⾃定义配置的需求就可以实现了。

现在分享出来,希望对看到这篇⽂章的朋友有所帮助。

第⼀步:创建项⽬和类库: 新建⼀个Windows控制台应⽤程序“MyDemo”,然后再新建⼀个C#类库“MyDemo.Config”,并在MyDemo中添加对MyDemo.Config的引⽤。

第⼆步:添加引⽤,新建配置⽂件: 在MyDemo.Config中先删除除System之外的所有引⽤,然后添加对System.Configuration库的引⽤,并新建⼀个配置⽂件App.config。

第三步:在MyDemo.Config⾥⾯添加⼀个静态类“ConfigManager”,代码⾥这样写:View Codeusing System;using System.Configuration;namespace MyDemo.Config{public static class ConfigManager{readonly static bool _Error;static Configuration _AppConfig;static ConfigManager(){string dllPath = string.Format("{0}\\{1}.dll", AppDomain.CurrentDomain.RelativeSearchPath ?? AppDomain.CurrentDomain.BaseDirectory, "MyDemo.Config");try{_AppConfig = ConfigurationManager.OpenExeConfiguration(dllPath);}catch(ConfigurationErrorsException){_Error = true;}}public static KeyValueConfigurationCollection AppSettings{get{if (_Error) return null;return _AppConfig.AppSettings.Settings;}}public static ConnectionStringSettingsCollection ConnectionStrings{get{if (_Error) return null;return _AppConfig.ConnectionStrings.ConnectionStrings;}}}} 通过AppDomain.CurrentDomain.BaseDirectory和稳定的类库名称,来获取实际运⾏中该dll⽂件的具体物理路径,然后通过ConfigurationManager的OpenExeConfiguration⽅法就能获取到相应的dll.config⽂件中的配置。

一步一步教你玩转.NET Framework的配置文件app.config

一步一步教你玩转.NET Framework的配置文件app.config

一步一步教你玩转.NET Framework的配置文件app.config在一般的项目中,为了使你的代码更加灵活,更方便调整,减少不必要的hard code,我们都在config中添加许多配置信息,一般可以选择.NET自带的配置文件形式app.config或者web 项目中的web.config来完成配置工作。

.NET中提供了几个和配置有关的类来支持用完轻松的完成配置文件的读写设置:System.Configuration.ConfigurationSectionGroup一般和你项目中使用的Assambly保持1:1的对应关系,这样划分使得结构相对清晰,权责明确。

当然你可以不使用它,这样一旦你的Assambly在别的地方要被重用时,找出相应的config信息就变得很困难。

System.Configuration.ConfigurationSection维护一个相对独立的配置节,使用时需现在<ConfigSections></ConfigSections>节点下声明。

我们熟悉的<appSettings></appSettings>以及<connectionStrings></connectionStrings/>就是.NET为我们预留的一个Section。

System.Configuration.ConfigurationElementCollection &System.Configuration.ConfigurationElement就是Section下具体的配置信息和配置信息的集合了。

下面来看看怎么使用这些类玩转app.config1.初级玩法最初级的用法当然是使用<appSettings/>,我们在app.config 中添加<configuration><appSettings><add key="MyConfigString" value="Test Config Data"/></appSettings></configuration>访问它public class AppSettingConfig{public string resultValue;public AppSettingConfig(){this.resultValue =ConfigurationManager.AppSettings["MyConfigString"].ToString();}}[TestMethod]public void TestAppSettingConfigNode(){AppSettingConfig appCon = new AppSettingConfig();Assert.AreEqual("Test Config Data", appCon.resultValue);}没有问题!我们加个Section来看看如何访问:<configuration><configSections><sectionGroup name="MySectionGroup"><section name="MyFirstSection"type="System.Configuration.DictionarySectionHandler"/><section name="MySecondSection"type="System.Configuration.DictionarySectionHandler"/></sectionGroup></configSections><MySectionGroup><MyFirstSection><add key="First" value="First Section"/></MyFirstSection><MySecondSection><add key="Second" value="Second Section"/></MySecondSection></MySectionGroup></configuration>注意我们在section的type中给出了System.Configuration.DictionarySectionHandler,这也限制了我们在具体的ConfigurationElement中只能使用<add key=”” value=””/>的形式,使得我们GetSection()方法返回的是一个IDictory对象,我们可以根据Key来取得相应的值public class SectionConfig{public string resultValue;public SectionConfig(){System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None );IDictionary dic =ConfigurationManager.GetSection("MySectionGroup/MySecondSection") as IDictionary;this.resultValue = dic["Second"].ToString();}}[TestMethod]public void TestSectionGroupConfigNode(){SectionConfig sc = new SectionConfig();Assert.AreEqual("First Section", sc.resultValue);}还是没问题。

解决在Web.config或App.config中添加自定义配置的方法详解

解决在Web.config或App.config中添加自定义配置的方法详解

解决在Web.config或App.config中添加自定义配置的方法详解本篇文章是对在Web.config或App.config中添加自定义配置的方法进行了详细的分析介绍,需要的朋友参考下.Net中的System.Configuration命名空间为我们在web.config或者app.config中自定义配置提供了完美的支持。

最近看到一些项目中还在自定义xml文件做程序的配置,所以忍不住写一篇用系统自定义配置的随笔了。

如果你已经对自定义配置了如指掌,请忽略这篇文章。

言归正传,我们先来看一个最简单的自定义配置<?xml version="1.0" encoding="utf-8" ?><configuration><configSections><section name="simple"type="ConfigExample.Configuration.SimpleSection,ConfigExample"/></configSections><simple maxValue="20" minValue="1"></simple></configuration>在配置文件中使用自定义配置,需要在configSections中添加一个section元素,并制定此section元素对应的类型和名字。

然后再在configuration根节点下面添加此自定义配置,如上例中的simple节点。

simple节点只有两个整形数的属性maxValue和minValue。

要在程序中使用自定义配置我们还需要实现存取这个配置块的类型,一般需要做如下三件事:1. 定义类型从System.Configuration.ConfigurationSection继承2. 定义配置类的属性,这些属性需要用ConfigurationProperty特性修饰,并制定属性在配置节中的名称和其他一些限制信息3. 通过基类的string索引器实现属性的get ,set非常简单和自然,如下是上面配置类的实现:public class SimpleSection:System.Configuration.ConfigurationSection{[ConfigurationProperty("maxValue",IsRequired=false,DefaultValue=Int32.MaxValue)]public int MaxValue{get{return (int)base["maxValue"];}set{base["maxValue"] = value;}}[ConfigurationProperty("minValue",IsRequired=false,DefaultValue=1)]public int MinValue{get { return (int) base["minValue"];}set { base["minValue"] = value; }}[ConfigurationProperty("enabled",IsRequired=false,DefaultValue=true)]public bool Enable{get{return (bool)base["enabled"];}set{base["enabled"] = value;}}}这样子一个简单的配置类就完成了,怎么在程序中使用这个配置呢?需要使用ConfigurationManager类(要引用System.configuration.dll这个dll只有在.Net2.0之后的版本中才有)的GetSection方法获得配置就可以了。

Unity加载配置文件的两种方式

Unity加载配置文件的两种方式
配置示例:
<?xml version=”1.0″ encoding=”utf-8″ ?> <configuration> <configSections> <section name=”unity” type=”Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration”/> </configSections>
登录后才能查看或发表评论立即登录或者逛逛博客园首页
Unity加 载 配 置 文 件 的 两 种 方 式
1、当前AppDomain的配置文件(App.config或Web.config,通过AppDomain.CurrentDomain.SetupInformation.ConfigurationFile获得):
1 IUnityContainer unityContainer = new UnityContainer(); 2 unityContainer.LoadConfiguration();
LoadConfiguration默认会加载没有命名的container,可以通过传递特定的containerName加载指定的container。
<unity xmlns=”/practices/2010/unity”> <container>
</conta”container1″>
</container> </unity> </configuration>
LoadConfiguration是IUnityContainer的扩展函数,在Microsoft.Practices.Unity.Configuration.dll中的Microsoft.Practices.Unity.Configuration namespace下定义的UnityContainerExtensions。

web.config配置说明

web.config配置说明

web.config配置说明<configuration>//顶层元素<system.web>//⼤多应⽤程序设置位于此元素下<sessionState mode='Inproc' timeout='10' />//设置会话状态超时时间</system.web></configuration>Table 3-1.可⽤于web.config的顶层配置元素元素Element含义Purpose<authentication>指定所使⽤的客户⾝份验证模式Specify the client authentication mode to use<authorization>允许或者拒绝⽤户或⾓⾊的访问Allow or deny users or roles access<browserCaps>根据⽤户代理指定浏览器的能⼒Specify browser capabilities based on user agent<clientTarget>定义客户⽬标Define client targets<compilation>控制同页编译和程序集引⽤Control page compilation and assembly references<customErrors>控制错误页显⽰和定义⾃定义的错误页Control error page display and define custom error pages<globalization>设置请求和响应的编码Set the request and response encoding<httpHandlers>添加或移除HTTP处理程序Add or remove HTTP handlers<httpModules>添加或移除HTTP模块Add or remove HTTP modules<httpRuntime>控制HTTP请求的处理Control aspects of HTTP request processing<identity>为该应⽤程序指定标识Specify impersonation for this application<machineKey>控制验证和解密的钥匙Control the validation and decryption key<pages>设置全局的⽹页默认属性Set defaults for page attributes globally<processModel>控制⼯作者进程的⾏为⽅式Control the behavior of the worker process<securityPolicy>使⽤相关的策略⽂件定义信任等级Define trust levels with associated policy files<sessionState>控制会话状态Control session state<trace>启⽤应⽤程序范围的跟踪Enable application-wide tracing<trust>选择使⽤的信任等级Select which trust level to use<webServices>指定Web服务的协议和范围Specify Web service protocols and extensions<appSettings>添加应⽤程序专⽤的数据元素Add application-specific data elements1, 配置的四个层次(1)机器:machine.config:位于$FRAMEWORK\CONFIG($FRAMEWORK⼀般是c:\winnt\\Framework\v1.0.3705),是.net必须备的默认配置⽂件。

web.config配置详细说明

web.config配置详细说明

web.config配置详细说明(⼀).Web.Config是以XML⽂件规范存储,配置⽂件分为以下格式1.配置节处理程序声明特点:位于配置⽂件的顶部,包含在<configSections>标志中。

2.特定应⽤程序配置特点: 位于<appSetting>中。

可以定义应⽤程序的全局常量设置等信息.3.配置节设置特点: 位于<system.Web>节中,控制运⾏时的⾏为.4.配置节组特点: ⽤<sectionGroup>标记,可以⾃定义分组,可以放到<configSections>内部或其它<sectionGroup>标记的内部.(⼆).配置节的每⼀节1.<configuration>节根元素,其它节都是在它的内部.2.<appSetting>节此节⽤于定义应⽤程序设置项。

对⼀些不确定设置,还可以让⽤户根据⾃⼰实际情况⾃⼰设置⽤法:I.<appSettings><add key="Conntction" value="server=192.168.85.66;userid=sa;password=;database=Info;"/><appSettings>定义了⼀个连接字符串常量,并且在实际应⽤时可以修改连接字符串,不⽤修改程式代码.II.<appSettings><add key="ErrPage" value="Error.aspx"/><appSettings>定义了⼀个错误重定向页⾯.III.<appSettings configSource="source/new.xml"/>可以通过新的XML来扩展配置内容。

new.xml写法为:<?xml version="1.0" encoding="utf-8" ?><appSettings><add key="" value="|"/></appSettings>3.<compilation>节格式:<compilation defaultLanguage="c#" debug="true" />I.default language: 定义后台代码语⾔,可以选择C#和两种语⾔.II.debug : 为true时,启动aspx调试;为false不启动aspx调试,因⽽可以提⾼应⽤程序运⾏时的性能。

web.config详解(配置文件节点说明)

web.config详解(配置文件节点说明)

web.config详解(配置文件节点说明)Posted on 2009-02-15 20:50 Charles Chen阅读(625) 评论(0)编辑收藏所属分类: Web.config深入浅出, web.config文件是一个XML文件,它的根结点是<configuration>,在<configuration>节点下的常见子节点有:<configSections>、<appSettings>、<connectionStrings>和<system.web>。

其中<appSettings>节点主要用于配置一些网站的应用配置信息,而<connectionStrings>节点主要用于配置网站的数据库连接字符串信息。

<system.web>节点主要是网站运行时的一些配置,它的常见节点有如下:1.<appSettings>节点<appSettings>节点主要用来存储应用程序的一些配置信息2.<compilation>节点<compilation>节点配置 使用的所有编译设置。

默认的debug属性为“true”,即允许调试,在这种情况下会影响网站的性能,所以在程序编译完成交付使用之后应将其设为“false”。

3.<authentication>节点设置身份验证模式,有四种身份验证模式,它们的值分别如下:Mode 说明Windows 使用Windows身份验证,适用于域用户或者局域网用户。

Forms 使用表单验证,依靠网站开发人员进行身份验证。

Passport 使用微软提供的身份验证服务进行身份验证。

None 不进行任何身份验证。

4.<customErrors>节点<customErrors>节点用于定义一些自定义错误信息的信息。

对Web.config配置文件的常见操作-洞幺人生-博客园

对Web.config配置文件的常见操作-洞幺人生-博客园

对Web.config配置⽂件的常见操作-洞⼳⼈⽣-博客园对Web.config配置⽂件的常见操作对于配置⽂件的常见操作包括:l 读取l 修改l 将web.config中的配置节放在单独的⽂件中l 对某⼀节进⾏加密l 添加定制的节操作web配置⽂件(包括machine.config和web.config等)的命名空间是:System.Web.Configuration。

主要应⽤的类是:WebConfigurationManager。

下⾯看看WebConfigurationManager类的成员。

(可以利⽤MSDN来查看,我下⾯是利⽤Lutz Roeder的Reflector)图 1 WebConfigurationManager类成员3.2.1 读取图 2 WebConfigurationManager类中⽤于读取的属性和⽅法3.2.1.1 读取appSettings节和connectionStrings节在WebConfigurationManager类中,我们⾸先注意到其两个属性AppSettings和ConnectionStrings。

这两个属性就是⽤于操作我们前⾯看到的web.config⽂件中的两节appSettings和connectionStrings。

下⾯演⽰使⽤⽅法。

演⽰操作appSettings 节的代码:using System.Web.Configuration;....string message;message = WebConfigurationManager.AppSettings["message"];...演⽰操作connectionStrings节的代码:using System.Web.Configuration;....string connectionString =WebConfigurationManager.ConnectionStrings["pubs"].ConnectionString;...3.2.1.2 读取其它节在.NET中读取其它节要⿇烦⼀些。

Web.config配置文件详解

Web.config配置文件详解

花了点时间整理了一下 Web.config配置文件的基本使用方法。

很适合新手参看,由于Web.config在使用很灵活,可以自定义一些节点。

所以这里只介绍一些比较常用的节点。

<?xml version="1.0"?><!--注意: 除了手动编辑此文件以外,您还可以使用 Web 管理工具来配置应用程序的设置。

可以使用 Visual Studio 中的“网站”->“ 配置”选项。

设置和注释的完整列表在 ments 中,该文件通常位于"Windows""Framework"v2.x"Config 中。

--><!--Webconfig文件是一个xml文件,configuration是xml文件的根节点,由于xml文件的根节点只能有一个,所以Webconfig的所有配置都是在这个节点内进行的。

--><configuration><!--指定配置节和命名空间声明。

clear:移除对继承的节和节组的所有引用,只允许由当前 section 和 sectionGroup 元素添加的节和节组。

remove:移除对继承的节和节组的引用。

section:定义配置节处理程序与配置元素之间的关联。

sectionGroup:定义配置节处理程序与配置节之间的关联。

--><configSections><sectionGroup name="system.web.extensions"type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"><sectionGroup name="scripting"type="System.Web.Configuration.ScriptingSectionGroup,System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"><section name="scriptResourceHandler"type="System.Web.Configuration.ScriptingScriptResourceHandlerS ection, System.Web.Extensions, Version=1.0.61025.0,Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false"allowDefinition="MachineToApplication"/></sectionGroup></sectionGroup><section name="rewriter"type="Intelligencia.UrlRewriter.Configuration.RewriterConfigur ationSectionHandler, Intelligencia.UrlRewriter"/></configSections><!--appSettings是应用程序设置,可以定义应用程序的全局常量设置等信息--><appSettings><add key="1"value="1"/><add key="gao"value="weipeng"/></appSettings><!--连接字符串设置--><connectionStrings><add name="ConnString"connectionString="DataSource=GAO;Initial Catalog=HBWXDate;UserID=sa;password=sa"></add><add name="111"connectionString="11111"/></connectionStrings><!--指定应用子配置设置的资源,并锁定配置设置,以防止它们被子配置文件重写。

DoNet 自定义应用程序配置

DoNet 自定义应用程序配置

.Net 自定义应用程序配置引言几乎所有的应用程序都离不开配置,有时候我们会将配置信息存在数据库中(例如大家可能常会见到名为Config这样的表);更多时候,我们会将配置写在Web.config或者App.Config中。

通过将参数写在配置文件(表)中,我们的程序将变得更加灵活,只要对参数进行修改,再由程序中的某段代码去读取相应的值就可以了。

而如果直接将配置值写在程序中,当配置需要改变时,则只能通过修改代码来完成,此时往往需要重新编译程序集。

本文不是讲述.Net Framework中诸多的内置结点如何设置,比如httpHandler、httpModule、membership、roleManager 等。

而是讲述.Net中配置的实现方式,以及如何定义、使用我们自定义的结点。

.Net 中的程序配置介绍我们首先了解下.Net 中的配置文件是如何工作的。

我们看下这段代码:// Web.Config<appSettings><add key="SiteName"value=""/></appSettings>// Default.aspx.csprotected void Page_Load(object sender,EventArgs e) {Literal siteName = new Literal();siteName.Text =ConfigurationManager.AppSettings["SiteName"];form1.Controls.Add(siteName);}上面这段代码大家应该再熟悉不过了,我们在appSettings结点中添加了一个add子结点,给key和value属性赋了值,然后在程序中读取了值。

但是为什么可以这么做?如果我们想自定义一个配置系统,我们该怎么做呢?我们先抛开.Net的机制不谈,来看看如果自己实现一个应用程序的配置方法该如何做,我想可以是这样的:1.首先建立一个XML文件,在这个文件中创建我们需要的结点(或者结点树),在结点的属性或者文本(innerText)中存储配置值。

sqlsugar的使用 -回复

sqlsugar的使用 -回复

sqlsugar的使用-回复SqlSugar的使用SqlSugar是一款基于的ORM框架,它提供了简单易用、高性能的数据库访问解决方案,使开发人员能够更加便捷地操作数据库。

本文将以"SqlSugar的使用"为主题,详细介绍SqlSugar框架的安装和基本用法,帮助读者快速上手。

一、安装SqlSugar1.1 在Visual Studio的NuGet包管理器中搜索"SqlSugar",点击"安装"按钮进行安装。

1.2 在项目中引用SqlSugar的命名空间。

using SqlSugar;二、配置数据库连接2.1 在App.config(或Web.config)文件中添加数据库连接字符串的配置,如下所示:<connectionStrings><add name="ConnectionString" connectionString="Data Source=127.0.0.1;Database=DatabaseName;UserID=UserName;Password=Password;"/></connectionStrings>2.2 在代码中获取数据库连接字符串。

string connectionString =ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;三、基本查询操作3.1 创建SqlSugarClient对象。

SqlSugarClient db = new SqlSugarClient(new ConnectionConfig(){ConnectionString = connectionString,DbType = DbType.SqlServer,IsAutoCloseConnection = true,});3.2 执行SQL查询语句,获取数据。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

解决在Web.config或App.config中添加自定义配置的方法详解本篇文章是对在Web.config或App.config中添加自定义配置的方法进行了详细的分析介绍,需要的朋友参考下.Net中的System.Configuration命名空间为我们在web.config或者app.config中自定义配置提供了完美的支持。

最近看到一些项目中还在自定义xml文件做程序的配置,所以忍不住写一篇用系统自定义配置的随笔了。

如果你已经对自定义配置了如指掌,请忽略这篇文章。

言归正传,我们先来看一个最简单的自定义配置<?xml version="1.0" encoding="utf-8" ?><configuration><configSections><section name="simple"type="ConfigExample.Configuration.SimpleSection,ConfigExample"/></configSections><simple maxValue="20" minValue="1"></simple></configuration>在配置文件中使用自定义配置,需要在configSections中添加一个section元素,并制定此section元素对应的类型和名字。

然后再在configuration根节点下面添加此自定义配置,如上例中的simple节点。

simple节点只有两个整形数的属性maxValue和minValue。

要在程序中使用自定义配置我们还需要实现存取这个配置块的类型,一般需要做如下三件事:1. 定义类型从System.Configuration.ConfigurationSection继承2. 定义配置类的属性,这些属性需要用ConfigurationProperty特性修饰,并制定属性在配置节中的名称和其他一些限制信息3. 通过基类的string索引器实现属性的get ,set非常简单和自然,如下是上面配置类的实现:public class SimpleSection:System.Configuration.ConfigurationSection{[ConfigurationProperty("maxValue",IsRequired=false,DefaultValue=Int32.MaxValue)]public int MaxValue{get{return (int)base["maxValue"];}set{base["maxValue"] = value;}}[ConfigurationProperty("minValue",IsRequired=false,DefaultValue=1)]public int MinValue{get { return (int) base["minValue"];}set { base["minValue"] = value; }}[ConfigurationProperty("enabled",IsRequired=false,DefaultValue=true)]public bool Enable{get{return (bool)base["enabled"];}set{base["enabled"] = value;}}}这样子一个简单的配置类就完成了,怎么在程序中使用这个配置呢?需要使用ConfigurationManager类(要引用System.configuration.dll这个dll只有在.Net2.0之后的版本中才有)的GetSection方法获得配置就可以了。

如下代码:SimpleSection simple = ConfigurationManager.GetSection("simple") as SimpleSection; Console.WriteLine("simple minValue={0} maxValue = {1}",simple.MinValue,simple.MaxValue);这个配置类太过简陋了,可能有时候我们还需要更复杂的构造,比如在配置类中使用类表示一组数据,下面我们看一个稍微复杂一点的自定义配置<?xml version="1.0" encoding="utf-8" ?><configuration><configSections><section name="complex" type="plexSection,ConfigExample"/></configSections><complex height="190"><child firstName="James" lastName="Bond"/></complex></configuration>这个配置的名字是complex,他有一个属性height,他的节点内还有一个child元素这个元素有两个属性firstName和lastName;对于这个内嵌的节点该如何实现呢?首先我们需要定义一个类,要从ConfigurationElement类继承,然后再用和SimpleSection类似的方法定义一些用ConfigurationProperty特性修饰的属性就可以了,当然属性值的get,set也要使用基类的索引器。

如下实现:public class ComplexSection : ConfigurationSection{[ConfigurationProperty("height", IsRequired = true)]public int Height{get{return (int)base["height"];}set{base["height"] = value;}}[ConfigurationProperty("child", IsDefaultCollection = false)]public ChildSection Child{get{return (ChildSection)base["child"];}set{base["child"] = value;}}}public class ChildSection : ConfigurationElement{[ConfigurationProperty("firstName", IsRequired = true, IsKey = true)] public string FirstName{get{return (string)base["firstName"];}set{base["firstName"] = value;}}[ConfigurationProperty("lastName", IsRequired = true)]public string LastName{get{return (string)base["lastName"];}set{base["lastName"] = value;}}}还有稍微再复杂一点的情况,我们可能要在配置中配置一组相同类型的节点,也就是一组节点的集合。

如下面的配置:<?xml version="1.0" encoding="utf-8" ?><configuration><configSections><section name="complex" type="plexSection,ConfigExample"/></configSections><complex height="190"><child firstName="James" lastName="Bond"/><children><add firstName="Zhao" lastName="yukai"/><add firstName="Lee" lastName="yukai"/><remove firstName="Zhao"/></children></complex></configuration>请看children节点,它就是一个集合类,在它里面定义了一组add元素,也可以有remove 节点把已经添进去的配置去掉。

要使用自定义节点集合需要从ConfigurationElementCollection类继承一个自定义类,然后要实现此类GetElementKey(ConfigurationElement element)和ConfigurationElement CreateNewElement()两个方法;为了方便的访问子节点可以在这个类里面定义只读的索引器。

请看下面的实现public class Children : ConfigurationElementCollection{protected override object GetElementKey(ConfigurationElement element){return ((ChildSection)element).FirstName;}protected override ConfigurationElement CreateNewElement(){return new ChildSection();}public ChildSection this[int i]{get{return (ChildSection)base.BaseGet(i);}}public ChildSection this[string key]{get{return (ChildSection)base.BaseGet(key);}}}当然要使用此集合类我们必须在Complex类中添加一个此集合类的属性,并要指定集合类的元素类型等属性,如下:[ConfigurationProperty("children", IsDefaultCollection = false)][ConfigurationCollection(typeof(ChildSection), CollectionType = ConfigurationElementCollectionType.AddRemoveClearMap, RemoveItemName = "remove")] public Children Children{get{return (Children)base["children"];}set{base["children"] = value;}}我们会经常用到类似appSettings配置节的键值对的构造,这时候我们就不必再自己实现了,我们可以直接使用现有的ValueConfigurationCollection类来定义一个自定义的键值对。

相关文档
最新文档