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将阿拉伯数字转换为罗马数字的方法
Jul 10 Python
Python实现多线程抓取妹子图
Aug 08 Python
Python正则表达式使用范例分享
Dec 04 Python
python里使用正则的findall函数的实例详解
Oct 19 Python
Python使用爬虫爬取静态网页图片的方法详解
Jun 05 Python
Python实用工具FuckIt.py介绍
Jul 02 Python
简单介绍python封装的基本知识
Aug 10 Python
python防止随意修改类属性的实现方法
Aug 21 Python
使用tensorflow显示pb模型的所有网络结点方式
Jan 23 Python
Django生成数据库及添加用户报错解决方案
Oct 09 Python
pytorch Dataset,DataLoader产生自定义的训练数据案例
Mar 03 Python
Python docx库删除复制paragraph及行高设置图片插入示例
Jul 23 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编译安装中遇到的两个错误和解决方法
2014/08/20 PHP
PHP之sprintf函数用法详解
2014/11/12 PHP
Windows下php+mysql5.7配置教程
2017/05/16 PHP
扩展JS Date对象时间格式化功能的小例子
2013/12/02 Javascript
谷歌地图打不开的解决办法
2014/08/07 Javascript
超棒的响应式布局jQuery插件Freetile.js
2014/11/17 Javascript
JavaScript中数组继承的简单示例
2015/07/29 Javascript
Bootstrap每天必学之基础排版
2015/11/20 Javascript
js设置和获取自定义属性的方法
2016/10/20 Javascript
js实现鼠标拖动功能
2017/03/20 Javascript
微信小程序表单验证错误提示效果
2017/05/19 Javascript
关于Angular2 + node接口调试的解决方案
2017/05/28 Javascript
vue实现商城购物车功能
2017/11/27 Javascript
浅谈Koa2框架利用CORS完成跨域ajax请求
2018/03/06 Javascript
Vue2.0实现调用摄像头进行拍照功能 exif.js实现图片上传功能
2018/04/28 Javascript
vue如何根据网站路由判断页面主题色详解
2018/11/02 Javascript
小程序绑定用户方案优化小结
2019/05/15 Javascript
vue项目中常见问题及解决方案(推荐)
2019/10/21 Javascript
详解python之配置日志的几种方式
2017/05/22 Python
对python append 与浅拷贝的实例讲解
2018/05/04 Python
在Python 中同一个类两个函数间变量的调用方法
2019/01/31 Python
Puppeteer使用示例详解
2019/06/20 Python
Python简单处理坐标排序问题示例
2019/07/11 Python
Pytorch在NLP中的简单应用详解
2020/01/08 Python
将自己的数据集制作成TFRecord格式教程
2020/02/17 Python
python str字符串转uuid实例
2020/03/03 Python
python实现启动一个外部程序,并且不阻塞当前进程
2020/12/05 Python
Clarins娇韵诗英国官网:来自法国的天然护肤品牌
2017/04/18 全球购物
德国高尔夫商店:Golfshop.de
2019/06/22 全球购物
JD Sports澳洲官网:英国领先的运动鞋和运动时尚零售商
2020/02/15 全球购物
公务员培训自我鉴定
2014/02/01 职场文书
保安岗位职责
2014/02/21 职场文书
高中军训感言1000字
2014/03/01 职场文书
海弦WR-800F
2022/04/05 无线电
Oracle 多表查询基本语法实例
2022/04/18 Oracle
pt-archiver 主键自增
2022/04/26 MySQL