• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ASP.NET 配置文件纵横谈(三)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

                                                       ASP.NET 配置文件纵横谈(三)

 

 

系列文章链接:

ASP.NET 配置文件纵横谈(一)

ASP.NET 配置文件纵横谈(二)

ASP.NET 配置文件纵横谈(三)

 

     本篇来讲讲对web.config文件的读写,并不是谁都可以对web.config文件进行读写操作的,必须要有一定的权限才行的。
      其实在web.config中的很多的配置节点都是与一个类相对应的,我们可以通过相应的类来,利用其强类型的API来对相应的配置进行访问,而不用把web.config 当做一个XML来读取。
      我们可以用两种方式来对配置文件进行访问,首先,可以用强类型的API来访问,这就要用要ConfigurationManager类。如下:
 

 System.Configuration;
 
protected void Page_Load(object sender, EventArgs e)
{
SessionStateSection sts 
=
(SessionStateSection)
ConfigurationManager.GetSection(
"system.web/sessionState");
Response.Write(
"The session state mode is: " + sts.Mode.ToString() + "<br/>");
}

 

      大家应该可以看到,其实我们现在就是对sessionState节点进行访问。
      在ConfigurationManager中有一个静态的方法GetSection,传入我们要访问节点的XPath,如上面的system.web/sessionState,然后把结果转换为对应的强类型,我们就可以访问节点的属性等信息。在System.Web.Configuration空间中,我们可以找到对应节点的强类型。


      有一点要注意的就是:ConfigurationManager仅仅只能处理当前网站中的web.config,也就是说它不能处理别的网站的中的配置文件。如我们现在的网站是DemoA,那么上面的实例代码访问的就是DemoA中的web.config,不能访问DemoB中的web.config。


      但是我们还可以用第二种方法来做,就是用WebConfigurationManager。代码如下:
 

 System.Configuration;
 
protected void Page_Load(object sender, EventArgs e)
{
MembershipSection ms 
=
MembershipSection)
WebConfigurationManager.GetSection(
"system.web/membership""~/web.config");
Response.Write(
"The default provider as set in config is: " +
ms.DefaultProvider 
+ "<br/>");}
}

      上面的代码中,注意GetSection的第二个参数就申明了web.config的路径,上面的代码访问的是当前网站中的配置文件,我们还访问其他网站中的配置文件。

      上面讲述了怎么来读取一个配置文件,下面就来看看怎么对配置文件进行写的操作。
      当对配置文件进行写的操作的时候,就要求我们确确实实的打开配置文件,而不仅仅只是返回一个配置文件的引用。也就是说,我们不能用ConfigurationManager来进行写的操作,因为它只是返回一个System.Configuration.Configuration的引用。所以我们应该用WebConfigurationManager来对配置文件进行写的操作。
      当我们用编程的方式打开配置文件,设置了一些属性后,就可以用Configuration.Save()来保存修改。如:
 

 System.Web.Configuration;
 
protected void Page_Load(object sender, EventArgs e)
{
Configuration config 
= WebConfigurationManager.OpenWebConfiguration("~");
MembershipSection ms 
=
(MembershipSection)config.GetSection(
"system.web/membership");
ms.DefaultProvider 
= "someOtherProvider";
config.Save();
}

      注意:OpenWebConfiguration方法有很多的重载,"~"表示我们打开的是当前网站的配置文件。还有一点很中的就是,配置文件系统没有对多线程进行同步和锁。所以载我们写一个配置文件的时候最好注意这点。
 
 

 

 

 

 

 

 

 

 


 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
收藏一篇关于Asp.net Response.Filter的文章发布时间:2022-07-10
下一篇:
ASP.NETMVC应用,站点发布到本地IIS发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap