使用ConfigurationManager来写自己的配置文件
在.NET 1.1下,你必须用过实现IConfigurationSectionHandler接口来进行操作。
但在.NET 2.0下,微软提供了一系列可以对配置文件进行操作的方法,而且非常强大,能够让你随便定义自己的配置节点。在开始之前我们先看看我们想写一个怎样的配置节:



这个地方指定了我们想要写一个MailSettings的节,后面的type标识将会使用MyBlog这个assembly理的MyBlog.MailSection类来识别这个section。







这个地方有是我们自定义的一些配置了,value就是我们所需要的一些值。
现在目标已经有了,下面就是怎么去用这些API来读出我们需要的值:
首先很自然我们需要MailSettings的这个section,于是我们定义类:




一个ConfigurationSection可以有自己的一些attribute,这些网上资料很多,我就不详解了。我关心的是下面的MailPlugins这层,这层在配置文件上被称为ConfigurationElementCollection,也就是一些ConfigurationElement的集合。那么我们先定义所需要的ConfigurationElement:

















接着是定义这个ConfigurationElement的集合:












默认的抽象类是让我们必须override上面的两个保护方法。但是这样是不能满足我们的要求的,我们希望用add key 和 value这种形式来配置:







这里相当重要!需要使用AddRemoveClearMap来确保配置处理节能够识别<add key="" value="" />,如果配置为别的会报给你add节无法识别的错误!
那么最后我们一个常用的功能没有提供:索引器!于是我们再加上:









那么ConfigurationElementCollection告一段落了,现在就是把这些东西塞进ConfigurationSection了:








注意这里的ConfigurationProperty这个Attribute,里面的字符串就是你在配置节里的那个element group节点。当然如果你想省事的话你可以定义为"",这样上面的配置文件就变为:





最后便是如何使用了:








【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】