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入门教程
Feb 08 Python
50行代码实现贪吃蛇(具体思路及代码)
Apr 27 Python
Python中不同进制互相转换(二进制、八进制、十进制和十六进制)
Apr 05 Python
基于使用paramiko执行远程linux主机命令(详解)
Oct 16 Python
python实现壁纸批量下载代码实例
Jan 25 Python
python中的闭包函数
Feb 09 Python
详解Django的CSRF认证实现
Oct 09 Python
python文件读写代码实例
Oct 21 Python
Django框架配置mysql数据库实现过程
Apr 22 Python
Python pytesseract验证码识别库用法解析
Jun 29 Python
python 绘制国旗的示例
Sep 27 Python
详解python字符串驻留技术
May 21 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文章内容分页并生成相应的htm静态页面代码
2010/06/07 PHP
基于PHP一些十分严重的缺陷详解
2013/06/03 PHP
php自动给网址加上链接的方法
2015/06/02 PHP
CI框架扩展系统核心类的方法分析
2016/05/23 PHP
CI框架封装的常用图像处理方法(缩略图,水印,旋转,上传等)
2016/11/22 PHP
jQuery技巧大放送 学习jquery的朋友可以看下
2009/10/14 Javascript
始终在屏幕中间显示Div的代码(css+js)
2011/03/10 Javascript
用js正确判断用户名cookie是否存在的方法
2014/01/28 Javascript
浅析JavaScript 调试方法和技巧
2015/10/22 Javascript
js实现正则匹配中文标点符号的方法
2015/12/23 Javascript
AngularJS优雅的自定义指令
2016/07/01 Javascript
学习vue.js计算属性
2016/12/03 Javascript
微信小程序学习(4)-系统配置app.json详解
2017/01/12 Javascript
基于jQuery实现照片墙自动播放特效
2017/01/12 Javascript
JavaScript简单生成 N~M 之间随机数的方法
2017/01/13 Javascript
JavaScript实现的XML与JSON互转功能详解
2017/02/16 Javascript
跟老齐学Python之用Python计算
2014/09/12 Python
python&amp;MongoDB爬取图书馆借阅记录
2016/02/05 Python
Python实现简单登录验证
2016/04/13 Python
python3库numpy数组属性的查看方法
2018/04/17 Python
对Python中type打开文件的方式介绍
2018/04/28 Python
Python使用Slider组件实现调整曲线参数功能示例
2019/09/06 Python
python opencv进行图像拼接
2020/03/27 Python
python 基于opencv 绘制图像轮廓
2020/12/11 Python
next在python中返回迭代器的实例方法
2020/12/15 Python
使用CSS3美化HTML表单的技巧演示
2016/05/17 HTML / CSS
Java中的类包括什么内容?设计时要注意哪些方面
2012/05/23 面试题
教育专业自荐书范文
2013/12/17 职场文书
即将毕业大学生自荐信
2014/01/24 职场文书
医务人员自我评价
2014/01/26 职场文书
《兰亭集序》教学反思
2014/02/11 职场文书
促销活动总结范文
2014/04/30 职场文书
运动会400米加油稿(8篇)
2014/09/22 职场文书
教师自查自纠工作情况报告
2014/10/29 职场文书
2014年保安个人工作总结
2014/11/13 职场文书
Python进阶学习之带你探寻Python类的鼻祖-元类
2021/05/08 Python