创建自定义配置结
介绍:
Web.Config文件由许多不同的配置结组成。用户可以根据程序需要进行配置。在
ASP.NET 2.0中用户可以创建自定义的配置结。本文将对此进行介绍
继承ConfiguraitonSection类:
我将创建一个简单的配置结。该配置结是一个允许用户书写名称的数据访问类。首先创建一个继承了ConfiguraitonSection的类。代码如下:
public class MyDataAccessSection : ConfigurationSection { |
MyDataAccessSection类包含一个名为dataAccessClassName的属性,该属性包含数据访问类的名称。下面是MyDataAccessSection类的完整代码
<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->
using System; using System.Data; using System.Configuration; using System.Web; namespace MyClassLibrary { public class MyDataAccessSection : ConfigurationSection { private static ConfigurationProperty propDataAccessClass = null; public MyDataAccessSection() { MyDataAccessSection.propDataAccessClass = new ConfigurationProperty( "dataAccessClassName", typeof(string), "MyDataAccessClass", ConfigurationPropertyOptions.IsRequired); } [ConfigurationProperty("dataAccessClassName")] public string DataAccessClassName { get { return (string)base[MyDataAccessSection.propDataAccessClass]; } set { base[MyDataAccessSection.propDataAccessClass] = value; } } } } |
.
下面逐步分析代码。在构在函数汇总定义了一个ConfigurationProperty属性的字段。名称为”dataAccessClassName”,类型为string,默认值:”MyDataAccessClass”. ConfigurationPropertyOptions设置为”IsRequired”,表示属性为必须。然后定义了名位DataAccessClassName的属性,[ConfigurationProperty("dataAccessClassName")]修饰
设置Web.Config文件:
使用MyDataAccessSection前想要在Web.Config文件中进行设置。需要告知web.config你所使用的自定义配置结。下面代码演示如何注册一个自定义配置结
<configSections> <section name="dataAccessSection" type="MyClassLibrary.MyDataAccessSection,MyClassLibrary"/> </configSections> |
Name属性设置data access配置结的名称,type属性设置配置界的类型,MyClassLibrary.MyDataAccessSection表示类,后面的MyClassLibrary是程序集的名称
声明一个自定义配置结
Declaring the Custom Section:
声明一个自定义配置结非常简单,只需要设置名称和属性
<dataAccessSection dataAccessClassName="GridViewGuyDataAccessClass"> </dataAccessSection> |
访问自定义配置结:
访问自定义配置结也很简单,下面的代码演示如何访问信息
<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->
// Get the custom section MyDataAccessSection section = (MyDataAccessSection) ConfigurationManager.GetSection("dataAccessSection"); // display the custom section Response.Write(section.DataAccessClassName); |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现