Welcome 微信登录

首页 / 网页编程 / ASP.NET / ASP.NET配置文件纵横谈(三)

ASP.NET配置文件纵横谈(三)2011-10-04 博客园 小洋本篇来讲讲对web.config文件的读写,并不是谁都可以对web.config文件进行读写操作的,必须要有一 定的权限才行的。

其实在web.config中的很多的配置节点都是与一个类相对应的,我们可以通过相应的类来,利用其强 类型的API来对相应的配置进行访问,而不用把web.config 当做一个XML来读取。

我们可以用两种方式来对配置文件进行访问,首先,可以用强类型的API来访问,这就要用要 ConfigurationManager类。如下:

using System.Web.Configuration;
using 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。代码如下:

using System.Web.Configuration;
using 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/>");}
}