首页
学习
活动
专区
圈层
工具
发布

配置:配置模型总体设计

一个IConfiguration对象具有树形层次化结构的意思并不是说对应的类型具有对应的数据成员定义,而是说它提供的API在逻辑上体现出树形化层次结构,所以我们才说配置树是一种逻辑结构。...如下所示的是IConfiguration接口的完整定义,所谓的层次化逻辑结构就体现在它的成员定义上。...在对IConfigurationRoot和IConfigurationSection具有基本了解情况下我们回过头来看看定义在接口IConfiguration中的成员。...这个抽象类的定义其实很简单,从如下的代码片段可以看出它仅仅是对一个IDictionary对象(Key不区分大小写)的封装,其Set和TryGetValue方法最终操作的都是这个字典对象...如下面的代码片段所示,IConfigurationBulder接口定义了两个方法,其中Add方法用于注册IConfigurationSource对象,最终的IConfiguration对象则通过Build

48140
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    ASP.NET配置文件多种方式读取

    ASP.NET Core项⽬默认的配置⽂件是appsettings.json,创建项⽬时就会⾃动⽣成这个⽂ 件,我们可以将⼀些配置信息存放在这个配置⽂件中,这样做的好处是当我们修改配置⽂件 时,不在需要重启应..."] + "_" + configuration["Logging:LogLevel:Default"]; }); 通过IOC注⼊IConfiguration对象,我们就可以访问不同节点的配置了...("msg"); }); GetValue⽆法读取对象,会报异常 通过GetSection方法获取 app.MapGet("config", (IConfiguration configuration)...=> { return configuration.GetSection("msg").Value; }); 读取对象 app.MapGet("config", (IConfiguration configuration...) => { return configuration.GetSection("Person").Get(); }); 使用委托来配置选项 先定义⼀个实体: public class

    25010

    ASP.NET Core的配置(2):配置模型详解

    表现为键值对的原子配置项存储于叶子节点中,而非叶子节点仅仅体现为一个配置节点的逻辑容器,自身不包含具体的配置数据。...对于我们在第一节定义的FormatSettings类型,我们可以按照如下的形式以XML和JSON的格式来定义其配置。...我们首先来介绍Configuration对象,本章不断提及的Configuration泛指类型实现了IConfiguration接口的对象,该接口定义在“Microsoft.Extensions.Configuration...如下面的代码片段所示,IConfigurationRoot仅仅包含一个唯一的方法Reload实现对配置数据的重新加载。...在对ConfigurationRoot和ConfigurationSection具有基本了解情况下我们回过头来看看定义在接口IConfiguration中的成员。

    1.5K90

    ASP.NET Core 6框架揭秘实例演示:配置的基本编程模式

    值得注意的是,初始化这两个属性采用的是调用这个IConfiguration对象的GetSection方法提取的“子配置节”。...在得到IConfiguration对象之后,我们调用其GetSection方法提取出“Format”配置节,并利用它将FormatOptions对象创建出来。...图3 读取结构化的配置 [503]将结构化配置绑定为对象 在前面的实例中,为了创建三个Options对象,我们不得不以键值对的方式从IConfiguration对象中读取每个配置节的值,如果定义的配置项太多...如代码片段所示,在构建出IConfiguration对象之后,我们其调用GetSection方法提取出“Format”配置节,最终的FormatOptions对象直接调用该配置节的Get方法生成出来...图4 针对执行环境的配置文件 我们在JSON文件中定义了针对日期/时间和货币格式的配置,假设预发环境和产品环境需要采用不同的货币格式,那么就需要将差异化的配置定义在针对环境的两个配置文件中。

    86120

    .NET Core采用的全新配置系统: 配置模型设计详解

    如下所示的是IConfiguration接口的完整定义,所谓的层次化逻辑结构就体现在它的成员定义上。...在对ConfigurationRoot和ConfigurationSection具有基本了解情况下我们回过头来看看定义在接口IConfiguration中的成员。...= root.GetSection("D")); 如上面的代码片段所示,我们以不同的方式调用GetSection方法得到的都是路径为“A:B:C”的ConfigurationSection。...IConfiguration还具有一个索引,我们可以指定子配置节的Key或者相对当前配置节点的路径得到对应ConfigurationSection的值。...这个抽象类的定义其实很简单,从如下的代码片段可以看出它仅仅是对一个IDictionary对象(Key不区分大小写)的封装,其Set和TryGetValue方法最终操作的都是这个字典对象

    754100

    .NET Core 3.x之下的配置框架

    一.配置框架的核心类库 首先我们使用.NET Core的配置框架需要安装额外的NuGet扩展包,下面是列举最常用的几个扩展包以及所对应的配置功能 NuGet Package Description Microsoft.Extensions.Configuration...下面我们在控制台使用内存存储配置信息并且完成一个Configuration的构造,代码如下: static void Main(string[] args) { //定义一个ConfigurationBuilder...IConfiguration configuration = builder.Build(); foreach (var item in configuration.GetChildren...: 定义ConfigurationBuilder 为ConfigurationBuilder添加ConfigurationSource 通过ConfigurationBuilder的Build...我们会发现,之前的环境变量都被过滤了,只能读取被过滤前缀后的环境变量 配置环境变量时的注意点: 和json等文件不同,环境变量的Key是以__双下划线为分层键,而不是:冒号 分层读取的时候是以冒号:来进行读取

    57750

    配置:读取配置数据

    我们可以采用内存的变量作为配置的数据源,也可以将配置定义在持久化的文件甚至数据库中。在对配置系统进行系统介绍之前,我们先从编程的角度来体验一下全新的配置读取方式。...这里介绍的IConfiguration、IConfigurationSource和IConfigurationBuilder接口以及其他一些基础类型均定义在NuGet包“Microsoft.Extensions.Configuration.Abstractions...DateTimeFormatOptions的四个属性所体现的显示格式,所以我们为它定义了一个构造函数。...值得注意的是初始化这两个属性采用的是当前IConfiguration的“子配置节”,我们通过调用GetSection方法根据指定的名称(“DateTime”和“CurrencyDecimal”)获得这两个子配置节...在利用ConfigurationBuilder得到IConfiguration对象之后,我们调用其GetSection方法得到名称为“Format”的配置节,并利用后者创建一个FormatOptions

    2.3K60

    ASP.NET Core 中快速读取配置的最佳实践

    为了实现高性能、类型安全且易于维护的配置读取方式,我们可以结合 IConfiguration 和选项模式(Options Pattern)进行优化。...本文将介绍几种高效读取配置的方法,并提供性能优化建议和高级技巧。 一、使用 IConfiguration 直接读取配置 这是最基础也是最直接的方式,适用于简单场景下的快速获取配置值。...缓存配置 对于不常变更的配置项,使用单例缓存其值,避免重复解析。 c....使用 GetSection 预加载配置节 var section = _configuration.GetSection("MySettings"); string apiKey = section["...自定义配置提供程序 实现 IConfigurationProvider 从数据库等自定义源加载配置: public class DatabaseConfigurationProvider : ConfigurationProvider

    17410

    ASP.NET CORE Study02

    asp.net core 读取自定义json 配置信息 方式一: 使用IConfiguration 接口的方式。 建立并书写好自定义json 配置文件。...controller 中调用,使用 构造函数注入,由asp.net core 内置容器注入一个IConfiguration 接口类型的对象。 这样就能获取到自定义json 配置文件的信息。...asp.net core 读取appsettings.json 配置信息 方式一: 使用IConfiguration 接口的方式 appsettings.json 配置文件已经定义好所需的节点信息,当然可以不一定是...然后在 controller 中调用, 使用构造函数注入,一个 IConfiguration 接口类型的对象,使用使用 .GetSection(“ConnectionStrings”)[“DeefaultConnection...在startup 的 configureservice 方法中注册,使用 services.Configure(Configuration.GetSection("

    35310
    领券