ASP.NET Core如何自定义配置源示例详解

2019-11-19 18:38 来源:易采站长站 作者:于海丽 点击: 评论:

A-A+

原标题:ASP.NET Core如何自定义配置源示例详解

前言

正如大家所知,在 .NET Core 中配置文件改成了 appsettings.json,表面上和 .NET Framework 的 web.config 或 app.config 好像没有太大的区别,只是一种是 json ,一种是 xml,但其实 .NET Core 的配置体系是一种全新的设计,灵活且具扩展性。这里主要介绍一下在 .NET Core 的配置体系下如何扩展自定义配置源,配置源其实就是配置信息存放的载体,最常用的就是文件类型。

.NET Core 配置体系

在进行自定义配置源介绍前,我们需要先了解一下 .NET Core 中的配置体系。 .NET Core 的配置体系中主要包含 ConfigurationProvider、ConfigurationSource、ConfigurationBuilder、Configuration 几大核心对象。

ConfigurationProvider

实现 IConfigurationProvider 接口,配置源真正提供者,主要提供配置信息的加载与刷新。

ConfigurationSource

实现 IConfigurationSource 接口,提供对应的 ConfigurationProvider 具体实例。

ConfigurationBuilder

实现 IConfigurationBuilder 接口,负责将 ConfigurationSource 添加到配置源集合,再根据配置源集合构建出 ConfigurationRoot 对象,实现 IConfigurationRoot 接口。

Configuration

实现 IConfiguration 接口,Configuration 对象在逻辑上体现出树形化层次结构,配置信息均已键/值对的方式提供使用。

注 :*IConfigurationRoot 、IConfigurationSection 均继承于 IConfiguration,IConfigurationRoot 表示配置的根节点,IConfigurationSection 则表示配置的非根节点*

所以他们之间的关系就是 ConfigurationProvider 实现配置提供,然后通过 ConfigurationSource 构造配置源实例,接着通过 ConfigurationBuilder 将配置源实例 ConfigurationSource 添加到配置源集合中并构造出 ConfigurationRoot,最终以 Configuration 对象提供给程序使用。

默认情况下,Configuration 对象的 Providers 属性包含如下 Provider:

【易采站长站编辑:秋军】