加入收藏 | 设为首页 | 会员中心 | 我要投稿 站长网 (https://www.zhandada.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > Asp教程 > 正文

asp.net core源码飘香:Configuration组件

发布时间:2022-12-20 14:00:52 所属栏目:Asp教程 来源:未知
导读: 简介:
这是一个基础组件,是一个统一的配置模型,配置可以来源于配置文件(json文件,xml文件,ini文件),内存对象,命令行参数,系统的环境变量又或者是你自己扩展的配置源,该组件将各

简介:

这是一个基础组件,是一个统一的配置模型,配置可以来源于配置文件(json文件,xml文件,ini文件),内存对象,命令行参数,系统的环境变量又或者是你自己扩展的配置源,该组件将各个配置源的数据按统一的格式(IDictionary Data)进行加载,进而对外提供调用接口。

不仅如此,有些配置源(如文件配置源)还可以在配置源的数据发生变化时进行重新加载(IDictionary Data),而程序员随时可以判断是否已经重新加载或注册回调,在重新加载配置时添加业务逻辑。

让我们先从一个问题切入源码:不同格式的配置源(如json数据)是怎样转成IDictionary Data的,层级关系丢了么?

asp小型软件下载站源 #65533;_asp源代码_动网dvbbs论坛源代码(asp代码

动网dvbbs论坛源代码(asp代码_asp源代码_asp小型软件下载站源 #65533;

可以看到,层级关系在转化为字典的key时使用冒号(:)分隔,如果子节点是一个数组,中间还会使用数组项的索引进行分隔(见上图:Configuration["wizards:0:Name"])asp源代码,有了这种分隔模式,任何数据源就都可以转为IDictionary对象了。

模型:

配置组件的模型由如下几个核心对象组成:

1.ConfigurationBuilder //编程入口,负责收集配置源(配置文件,命令行参数,内存对象等)及将收集到的配置源Build(调用各个配置源ConfigurationSource的Build方法)成一个配置提供器 (IConfigurationProvider)的集合传入ConfigurationRoot对象,通过该对象完成对不同数据源进行数据Load的过程。

2.IConfigurationSource //不同的配置源各自实现这个接口,主要为上面的Build过程提供IConfigurationProvider对象。

3.IConfigurationProvider //具体实现配置数据Load的地方,以及在数据源发生变化时重新加载数据及发出Change通知的地方。

4.ConfigurationRoot //用户直接使用的配置对象,里面管理着IConfigurationProvider对象的集合,Get和Set操作即由此对象调用各IConfigurationProvider完成。

5.ConfigurationSection //配置子节点的操作对象

源码说事:

1.一个json文件是怎样变成一个字典对象为我们提供配置服务的?

动网dvbbs论坛源代码(asp代码_asp源代码_asp小型软件下载站源 #65533;

asp源代码_动网dvbbs论坛源代码(asp代码_asp小型软件下载站源 #65533;

asp源代码_动网dvbbs论坛源代码(asp代码_asp小型软件下载站源 #65533;

asp小型软件下载站源 #65533;_动网dvbbs论坛源代码(asp代码_asp源代码

动网dvbbs论坛源代码(asp代码_asp小型软件下载站源 #65533;_asp源代码

asp源代码_asp小型软件下载站源 #65533;_动网dvbbs论坛源代码(asp代码

动网dvbbs论坛源代码(asp代码_asp源代码_asp小型软件下载站源 #65533;

asp源代码_asp小型软件下载站源 #65533;_动网dvbbs论坛源代码(asp代码

asp小型软件下载站源 #65533;_asp源代码_动网dvbbs论坛源代码(asp代码

动网dvbbs论坛源代码(asp代码_asp源代码_asp小型软件下载站源 #65533;

asp小型软件下载站源 #65533;_asp源代码_动网dvbbs论坛源代码(asp代码

asp小型软件下载站源 #65533;_动网dvbbs论坛源代码(asp代码_asp源代码

动网dvbbs论坛源代码(asp代码_asp源代码_asp小型软件下载站源 #65533;

asp小型软件下载站源 #65533;_asp源代码_动网dvbbs论坛源代码(asp代码

动网dvbbs论坛源代码(asp代码_asp源代码_asp小型软件下载站源 #65533;

总结:

配置组件的源码比较简单,但实现的功能确很强大。里面的设计思路和实现手法都令人赞叹不已。asp.net core的系列框架源码都是这样,实现手法有如少林七十二绝技,每一个框架都惊艳江湖!

相关文章:

原文地址:http://www.cnblogs.com/shiliyuanma/p/6682437.html


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

asp小型软件下载站源 #65533;_动网dvbbs论坛源代码(asp代码_asp源代码

(编辑:站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!