ltrSiteName.Text = siteName; ltrVersion.Text = version;
ltrLocalConnection.Text = localConnection; }
在浏览器中浏览,应该可以看到这样的界面:
使用 自定义结点 和 .Net内置处理程序
在上一节,我们使用了.Net内置的结点 appSettings 和 connectionStrings结点,并使用了 .Net 内置的处理程序。.Net 内置的处理程序定义于 machine.config中,提供全局服务,所以我们无需进行任何额外工作就可以直接使用。但是使用内置结点在很多情况下不一定方便,比如说,我们希望保存站点使用的邮件服务器的地址、用户名和密码,那么按照上面的做法,我想应该是这样的:
value=\ 这样的话配置及使用并不方便:首先,很明显这三个add是一组数据,但是除了凭自己的经验判断,再没有任何办法进行区分;其次,如果我们有多组服务器或者很多配置,我 们需要写很长的add结点。如果我们可以自定一个结点,情况就会好很多,比如我们在Web.Config中添加一个结点: 这样看起来就好了很多,mailServer表示这是一个关于邮件服务器配置的结点,它的属性/值 分别代表存储的相应的值。以后我们在程序中进行发送邮件时可以根据这里的值来对发送邮件的对象进行参数设置。本节我们就来看下如何在web.Config中使用我们自定义的结点,但使用.Net内置的处理程序。 NOTE:在web.config中,结点以及属性的命名遵循Camel命名方式,也就是首字母小写,其后的每个单词首字母大些的方式。 接着在站点中添加一个 Simple.aspx 文件,打开它。此时编译器会报错,提示:“分析器错误信息: 无法识别的配置节 mailServer”。 .Net已经提供了很多内置的处理程序,为了避免发生这个错误,我们必须在configSection中指定对mailServer结点的处理程序。有时候我们希望绕过.Net的机制,直接使用System.Xml命名空间下的类来对配置文件(web.config也是标准的Xml文件)进行操作,但是因为这里会报错,所以有的人干脆就另建一个xml文件了事,然后对新建的xml文件进行操作。实际上,可以通过指定 IgnoreSectionHandler 或者 IgnoreSection 处理程序的方式来进行处理,如同它们的名称所暗示的,这两个处理程序什么都不做,仅仅是让.Net 忽略我们的自定义结点。修改 web.Config ,在根节点configuration下创建configSections结点,然后再添加一个section结点,指定它的name属性值为mailServer,意为指定mailServer结点的处理程序,然后指定type为System.Configuration.IgnoreSection: type=\System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a\allowLocation=\false\ restartOnExternalChanges=\true\ 此时再次打开 Simple.aspx,编译器不再报错,由于我们什么内容也没有添加,此时会显示一个空白页面。现在,你可以采用“老办法”,编写程序去处理这个结点了,但是本文要讲述的,是一种更优雅、更.Net的方式。 在本节,我们暂且不自定义处理程序,看看.Net中除了这个IgnoreSectionHandler还有什么可以利用的处理程序。在.Net中,还有一个较为常用的处理程序,就是 System.Configuration.SingleTagSectionHandler,它会以Hashtable的形式返回结点的所有属性。 现在我们将上面定义的configSections结点下name属性为mailServer的section结点的type属性改为System.Configuration.SingleTagSectionHandler: type=\andler, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089\ 然后,修改simple.aspx文件,代码如下所示: // Simple.aspx runat=\ UserName: runat=\ Password: 使用 自定义结点 和 .Net内置处理程序
MailServer Information:
Address:

