ASP.NET Core中的配置详解


Posted in Python onFebruary 05, 2021

ASP.NET Core 提供了一个灵活可扩展,基于键值的配置系统. 但是配置系统独立于ASP.NET Core是Microsoft.Extensions 类库的部分. 它可以用于任何类型的应用程序

1、以键-值对的形式读取配置

appsettings.json 文件:

{
  "Position": {
    "Title": "编辑器",
    "Name": "Joe Smith"
  },
  "MyKey": "My appsettings.json Value",
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*"
}

在ConfigureServices方法里面添加如下测试代码:

var myKeyValue = Configuration["MyKey"];
    var title = Configuration["Position:Title"];
    var name = Configuration["Position:Name"];
    var defaultLogLevel = Configuration["Logging:LogLevel:Default"];

2、多环境配置

使用默认配置,EnvironmentVariablesConfigurationProvider 会在读取 appsettings.json、appsettings.Environment.json 和机密管理器后从环境变量键值对加载配置 。 因此,从环境中读取的键值会替代从 appsettings.json、appsettings.Environment.json 和机密管理器中读取的值 。在 launchSettings.json 中设置的环境变量,在 launchSettings.json 中设置的环境变量将替代在系统环境中设置的变量。

3、读取结构化的配置数据

添加一个类 TestSubSectionConfig 对应于配置文件中的 subsection 节点

public class TestSubSectionConfig
  {
    public string SubOption1 { get; set; }
    public string SubOption2 { get; set; }
  }

在ConfigureServices方法里面添加如下测试代码:

//使用GetSection解析配置文件的节
var subsectionOptions = Configuration.GetSection("subsection").Get<TestSubSectionConfig>();
var suboption2 = subsectionOptions.SubOption2;

Console.WriteLine($"subsection:suboption2: {suboption2}");

如果需要在Controller里面使用,可以通过依赖注入的方式:

在ConfigureServices里面注册配置项。

public void ConfigureServices(IServiceCollection services)
{
  //注册配置到服务容器
  services.Configure<TestSubSectionConfig>(Configuration.GetSection("subsection"));

  //var subsectionOptions = Configuration.GetSection("subsection").Get<TestSubSectionConfig>();
  //services.Configure<TestSubSectionConfig>(options =>
  //{
  //  options.SubOption1 = subsectionOptions["suboption1"];
  //  options.SubOption2 = subsectionOptions["suboption2"];
  // });

}

public class HomeController : Controller
{
  private TestSubSectionConfig _subSectionConfig;
  private ILogger<HomeController> _logger;

  public HomeController(IOptions<TestSubSectionConfig> option, ILogger<HomeController> logger)
  {
    _subSectionConfig = option.Value;
    _logger = logger;
  }

  public IActionResult Index()
  {
    _logger.LogInformation($"SubOption1: {_subSectionConfig.SubOption1}");
    _logger.LogInformation($"SubOption2: {_subSectionConfig.SubOption2}");
    return View();
  }
}

到此这篇关于ASP.NET Core中的配置详解的文章就介绍到这了,更多相关ASP.NET Core配置内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python实现根据用户输入从电影网站获取影片信息的方法
Apr 07 Python
在IIS服务器上以CGI方式运行Python脚本的教程
Apr 25 Python
django1.11.1 models 数据库同步方法
May 30 Python
python并发和异步编程实例
Nov 15 Python
django orm 通过related_name反向查询的方法
Dec 15 Python
深度辨析Python的eval()与exec()的方法
Mar 26 Python
基于pandas中expand的作用详解
Dec 17 Python
python图片剪裁代码(图片按四个点坐标剪裁)
Mar 10 Python
Python sql注入 过滤字符串的非法字符实例
Apr 03 Python
5行Python代码实现图像分割的步骤详解
May 25 Python
tensorflow dataset.shuffle、dataset.batch、dataset.repeat顺序区别详解
Jun 03 Python
Python开发五子棋小游戏
May 02 Python
pycharm 的Structure界面设置操作
Feb 05 #Python
Python实现疫情地图可视化
Feb 05 #Python
pycharm 实现调试窗口恢复
Feb 05 #Python
Biblibili视频投稿接口分析并以Python实现自动投稿功能
Feb 05 #Python
Pycharm 跳转回之前所在页面的操作
Feb 05 #Python
python自动化办公操作PPT的实现
Feb 05 #Python
20行代码教你用python给证件照换底色的方法示例
Feb 05 #Python
You might like
PHP常用代码
2006/11/23 PHP
ADODB结合SMARTY使用~超级强
2006/11/25 PHP
php 批量生成html,txt文件的实现代码
2013/06/26 PHP
php通过curl添加cookie伪造登陆抓取数据的方法
2016/04/02 PHP
PHP实现带重试功能的curl连接示例
2016/07/28 PHP
PHP中的正则表达式实例详解
2017/04/25 PHP
PHP实现生成推广海报的方法详解
2018/03/14 PHP
PHP程序员简单的开展服务治理架构操作详解(二)
2020/05/14 PHP
javascript form 验证函数 弹出对话框形式
2009/06/23 Javascript
让textarea自动调整大小的js代码
2011/04/12 Javascript
javascript中局部变量和全局变量的区别详解
2015/02/27 Javascript
jQuery实现点击小图片淡入淡出显示大图片特效
2015/09/09 Javascript
js实现正则匹配中文标点符号的方法
2015/12/23 Javascript
jQuery实现手机自定义弹出输入框
2016/06/13 Javascript
Bootstrap Table服务器分页与在线编辑应用总结
2016/08/08 Javascript
详解JavaScript中this的指向问题
2017/01/20 Javascript
基于JQuery的Ajax方法使用详解
2017/08/16 jQuery
详解JSONObject和JSONArray区别及基本用法
2017/10/25 Javascript
JS中Map和ForEach的区别
2018/02/05 Javascript
使用Vue Composition API写出清晰、可扩展的表单实现
2020/06/10 Javascript
vue 计算属性和侦听器的使用小结
2021/01/25 Vue.js
python3.3实现乘法表示例
2014/02/07 Python
用Python脚本来删除指定容量以上的文件的教程
2015/05/04 Python
Python中内置的日志模块logging用法详解
2016/07/12 Python
python自定义函数实现一个数的三次方计算方法
2019/01/20 Python
Python中py文件转换成exe可执行文件的方法
2019/06/14 Python
解决Django中多条件查询的问题
2019/07/18 Python
高一生物教学反思
2014/01/17 职场文书
观看《永远的雷锋》心得体会
2014/03/12 职场文书
母亲节感恩活动记录
2014/03/16 职场文书
食品质量与安全专业毕业生求职信
2014/08/11 职场文书
教师思想作风整顿个人剖析材料
2014/10/10 职场文书
丧事酒宴答谢词
2015/09/30 职场文书
入党转正申请书范文
2019/05/20 职场文书
python人工智能human learn绘图可创建机器学习模型
2021/11/23 Python
Nginx性能优化之Gzip压缩设置详解(最大程度提高页面打开速度)
2022/02/12 Servers