| eValueCollection).Keys Response.Output.WriteLine(aKey & "=" & _ ConfigurationSettings.AppSettings.Item(aKey)) Next 4.现在再次编译执行该Web窗体。这次,可以看到CustomSystemItem头信息尾随了一行“SomeKey=SomeValue”,它对应着在元素中增加的一个子元素。 通过修改machine.config文件,可以将定义好的自定义标记应用到在服务器上运行的任意Web应用程序上。但很可能你并不总是希望标记处理程序应用于所有应用程序,如果是这样,可以在Web.config文件中增加标记和标记,而不是在machine.config文件中。测试一下,首先删除之前在machine.config文件中定义的标记并保存,接着,在Web.config文件中紧跟着开始标记增加一个标记,并在其中置入标记。例如: type="System.Configuration.NameValueSectionHandler, System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> 5.为了能够看到变化,在web.config文件中的节再附加一个标记。 保存web.config文件并再次运行customItems.aspx Web窗体,可以看到有两个值而不再只是一个。无需重新编译应用程序即可完成测试,ASP.NET能够立即应用新的配置。 使用这种方式可以定义任意数量的自定义标记。然而,使用普通的标记,以及“key”和“value”这种固定的属性名称,总显得不是特别直观。从可维护性方面考虑,创建可以同时控制标记和属性名称的自定义标记会更有效一些。 三、定义解析自定义标记的自定义配置节处理程序 假定需要定义一系列文章,每一篇都有一个标题,一个URL,没有或有多个作者,那么如下所示的标记结构就会比泛泛的更容易维护: url="http://www.somewhere.com/article1.aspx"> Russell Jones url="http://www.somewhere.com/article2.aspx" /> Russell Jones Barry Jones 增加标记及其内容(即上边的XML段)到Web.config文件末尾的标记之前并保存。 作者提醒:先不要运行这个项目,否则会因为还没有为节定义配置节处理程序而出错! 为了能够从配置文件中识别标记,必须创建相应的自定义配置节处理程序。创建自定义配置节处理程序并不难,但需要一个单独的项目。这是因为配置节处理程序执行机制会根据程序的名称来搜索exe文件或dll文件。我将会带领大家用VB.NET来演示整个过程,而在本文源代码下载中也包括功能完全相同的C#项目(译者注:作者提供的本文相关源码下载地址是http://www.devx.com/assets/sourcecode/6600.zip)。 新建一个类库项目并命名为CustomItemHandler,删除VS默认生成的类而在项目中添加一个名为CustomTagHandler的新类。自定义配置节处理程序必须实现IconfigurationSectionHandler接口,这个接口只有一个名为Create的方法,该方法接受三个参数:一个名为parent的object变量,一个HttpConfigurationContext对象变量,一个名为section的XmlNode变量。 Imports System 上一页 [1] [2] [3] [4] [5] 下一页 |