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 相关文章推荐
haskell实现多线程服务器实例代码
Nov 26 Python
Python里隐藏的“禅”
Jun 16 Python
Python实现的文本简单可逆加密算法示例
May 18 Python
python Spyder界面无法打开的解决方法
Apr 27 Python
python保存文件方法小结
Jul 27 Python
解决pycharm运行时interpreter为空的问题
Oct 29 Python
Python实现的ftp服务器功能详解【附源码下载】
Jun 26 Python
python数组循环处理方法
Aug 26 Python
django和flask哪个值得研究学习
Jul 31 Python
pycharm 复制代码出现空格的解决方式
Jan 15 Python
Python djanjo之csrf防跨站攻击实验过程
May 14 Python
python数据处理之Pandas类型转换
Apr 28 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中利用XML技术构造远程服务(上)
2006/10/09 PHP
PHP上传图片进行等比缩放可增加水印功能
2014/01/13 PHP
php获取CSS文件中图片地址并下载到本地的方法
2014/12/02 PHP
php简单计算页面加载时间的方法
2015/06/19 PHP
ThinkPHP使用Smarty第三方插件方法小结
2016/03/19 PHP
js 字符串操作函数
2009/07/25 Javascript
推荐11款jQuery开发的复选框和单选框美化插件
2011/08/02 Javascript
一个简单的Ext.XTemplate的实例代码
2012/03/18 Javascript
javascript实现div的显示和隐藏的小例子
2013/06/25 Javascript
JavaScript常用基础知识强化学习
2015/12/09 Javascript
jquery操作select元素和option的实例代码
2016/02/03 Javascript
微信小程序 简单DEMO布局,逻辑,样式的练习
2016/11/30 Javascript
关于Vue在ie10下空白页的debug小结
2018/05/02 Javascript
原生JS封装_new函数实现new关键字的功能
2018/08/12 Javascript
vue组件创建的三种方式小结
2020/02/03 Javascript
JS函数参数的传递与同名参数实例分析
2020/03/16 Javascript
解决vue的router组件component在import时不能使用变量问题
2020/07/26 Javascript
Python 专题三 字符串的基础知识
2017/03/19 Python
Python实现删除时保留特定文件夹和文件的示例
2018/04/27 Python
python读取csv文件并把文件放入一个list中的实例讲解
2018/04/27 Python
python3.6+selenium实现操作Frame中的页面元素
2019/07/16 Python
基于HTML5超酷摄像头(HTML5 webcam)拍照功能实现代码
2012/12/13 HTML / CSS
美国第二大团购网站:LivingSocial
2016/07/24 全球购物
写给老师的表扬信
2014/01/21 职场文书
2014医学院领导干部四风对照检查材料思想汇报
2014/09/16 职场文书
2014政府领导班子对照检查材料思想汇报(3篇)
2014/09/26 职场文书
个人优缺点总结
2015/02/28 职场文书
求职简历自荐信怎么写
2015/03/26 职场文书
就业导师推荐信范文
2015/03/27 职场文书
2015大学生暑期实习报告
2015/07/13 职场文书
交通安全教育心得体会
2016/01/15 职场文书
初二物理教学反思
2016/02/19 职场文书
2019初中学生入团申请书
2019/06/27 职场文书
高效笔记技巧分享:学会这些让你不再困扰
2019/09/04 职场文书
浅析InnoDB索引结构
2021/04/05 MySQL
mysql 如何获取两个集合的交集/差集/并集
2021/06/08 MySQL