.NET Core - 配置框架:让服务无缝适应各种环境

简介: .NET Core - 配置框架:让服务无缝适应各种环境

本节学习.NET Core的配置框架,通过配置框架可以以不同的方式来配置不同环境下的服务,以使服务无缝适应各种环境。

核心组件包

  • Microsoft.Extensions.Configuration.Abstractions
  • Microsoft.Extensions.Configuration

配置框架

  • 以key-value字符串键值对的方式抽象了配置
  • 支持从各种不同的数据源读取配置

配置框架核心类型

  • IConfiguration
  • IConfigurationBuilder
  • IConfigurationRoot
  • IConfigurationSection

配置框架扩展点

  • IConfigurationSource
  • IConfigurationProvider

配置框架的种类

  • 内存配置
  • 命令行配置
  • 环境变量配置
  • 文件提供程序配置

通过代码来理解框架的核心类型

IConfigurationBuilder configurationBuilder = new ConfigurationBuilder();
configurationBuilder.AddInMemoryCollection(
    new Dictionary<string, string>()
    {
        {"key1","value1" },
        {"key2","value2" },
        {"section1:key3","value3" },
        {"section2:section3:key4","value4" }
    }
    );
IConfigurationRoot configurationRoot = configurationBuilder.Build();
Console.WriteLine($"key1:{configurationRoot["key1"]}");
Console.WriteLine($"key2:{configurationRoot["key2"]}");
Console.WriteLine($"key3:{configurationRoot["section1:key3"]}");
IConfigurationSection section1 = configurationRoot.GetSection("section1");
Console.WriteLine($"section1_key3:{section1["key3"]}");
IConfigurationSection section3 = configurationRoot.GetSection("section2:section3");
Console.WriteLine($"section2_section3_key4:{section3["key4"]}");
  • 配置的构建都通过IConfigurationBuilder来完成
  • 配置通过Builder创建,得到一个配置跟IConfigurationRoot
  • 有的配置有“节”,通过“:”来分割,获取节通过IConfigurationSection

 

这里注意以下几点

  • 获取section内的值,可以直接通过section:key的完整方式获取
  • 后面讲到环境变量配置方式时,其中可用"__"来代替“:”,注意该方式只适用于环境变量配置方式,其他方式不适用。

从下节开始,学习几种不同的配置方式。

源码可访问

https://github.com/IronMarmot/Samples/tree/master/CoreSamples


目录
打赏
0
0
0
0
3
分享
相关文章
2025年全面的.NET跨平台应用框架推荐
2025年全面的.NET跨平台应用框架推荐
132 23
NET任务调度框架Hangfire使用指南
Hangfire 是一个用于 .NET 应用程序的开源任务调度框架,支持长时间运行任务、定时任务等。通过简单的安装配置,即可将任务从主线程分离,提升应用性能。支持多种数据库,提供丰富的任务类型如立即执行、延迟执行和周期性任务,并有可视化管理界面 Hangfire Dashboard。还支持安全性配置及扩展插件,如 Hangfire.HttpJob,适合各种复杂场景下的任务调度需求。
167 1
NET任务调度框架Hangfire使用指南
一款基于 .NET MVC 框架开发、功能全面的MES系统
一款基于 .NET MVC 框架开发、功能全面的MES系统
基于云效 Windows 构建环境和 Nuget 制品仓库进行 .Net 应用开发
本文将基于云效 Flow 流水线 Windows 构建环境和云效 Packages Nuget 制品仓库手把手教你如何开发并部署一个 .NET 应用,从环境搭建到实战应用发布的详细教程,帮助你掌握 .NET 开发的核心技能。
在数字化时代,.NET 技术凭借跨平台兼容性、丰富的开发工具和框架、高效的性能及强大的安全稳定性,成为软件开发的重要支柱
在数字化时代,.NET 技术凭借跨平台兼容性、丰富的开发工具和框架、高效的性能及强大的安全稳定性,成为软件开发的重要支柱。它不仅加速了应用开发进程,提升了开发质量和可靠性,还促进了创新和业务发展,培养了专业人才和技术社区,为软件开发和数字化转型做出了重要贡献。
73 5
.NET开发技术在数字化时代的创新作用,从高效的开发环境、强大的性能表现、丰富的库和框架资源等方面揭示了其关键优势。
本文深入探讨了.NET开发技术在数字化时代的创新作用,从高效的开发环境、强大的性能表现、丰富的库和框架资源等方面揭示了其关键优势。通过企业级应用、Web应用及移动应用的创新案例,展示了.NET在各领域的广泛应用和巨大潜力。展望未来,.NET将与新兴技术深度融合,拓展跨平台开发,推动云原生应用发展,持续创新。
65 4
.NET 技术凭借高效开发环境、强大框架支持及跨平台特性,在软件开发中占据重要地位
.NET 技术凭借高效开发环境、强大框架支持及跨平台特性,在软件开发中占据重要地位。从企业应用到电子商务,再到移动开发,.NET 均展现出卓越性能,助力开发者提升效率与项目质量,推动行业持续发展。
80 4
基于.NET开源、功能强大且灵活的工作流引擎框架
基于.NET开源、功能强大且灵活的工作流引擎框架
114 3
.Net 转战 Android 4.4 日常笔记(1)--工具及环境搭建
原文:.Net 转战 Android 4.4 日常笔记(1)--工具及环境搭建 闲来没事做,还是想再学习一门新的技术,无论何时Android开发比Web的开发工资应该高40%,我也建议大家面对移动开发,我比较喜欢学习最新版本的,我有java的基础,但是年久,已经淡忘,以零基础学习,希望没有很多的语言...
945 0

热门文章

最新文章