.Net Core 将之前Web.Config中的配置迁移到了appsettings.json文件中,并使用ConfigurationBuilder来读取这个配置文件。并可设置在配置文件变化以后,自动重新加载,这样可不用重启你的程序。

1
2
3
4
5
var builder = new ConfigurationBuilder()
 .SetBasePath(env.ContentRootPath)
 .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
 .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
 .AddEnvironmentVariables();

  

配置信息读取

配置的读取要比以前方便很多,直接使用。在ConfigurationBuilder调用Build()方法以后,就可直接取值:

1
2
Configuration = builder.Build();
var value = Configuration["Section:Key"]

当配置更新以后,使用Configuration["Section:Key"]得到的也是最新的值。

配置强类型

可以直接使用强类型,把配置文件转换成你的对象直接使用,只要对象的属性与配置中一一对应即可。

1
services.Configure<DatabaseOption>(configuration.GetSection("Database"));

然后在来在构造函数中注入

?

1
2
3
4
public EntityFrameWorkConfigure(IOptions<DatabaseOption> dataBaseOption)
 {
     _dataBaseOption = dataBaseOption;
 }

注意:IOptions<T>是单例的,即当你修改了appsettings.json也不会改变它的值,这样一定要重启你的程序才会更新。

使用IOptionsSnapshot<T>自动更新

如果你希望在使用强类型的时候,也可以自动更新你的配置而不用重启程序,你可以使用IOptionsSnapshot<T>

1
2
3
4
public EntityFrameWorkConfigure(IOptionsSnapshot<DatabaseOption> dataBaseOption)
 {
     _dataBaseOption = dataBaseOption;
 }

原文地址:http://www.zkea.net/codesnippet/detail/post-80


.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com 

.Net Core配置与自动更新相关推荐

  1. 浅析 .Net Core中Json配置的自动更新

    Pre 很早在看 Jesse 的Asp.net Core快速入门的课程的时候就了解到了在Asp .net core中,如果添加的Json配置被更改了,是支持自动重载配置的,作为一名有着严重" ...

  2. 在 Ubuntu 14.04 LTS 中配置 certbot 自动更新

    目录 前言 一.安装 snapd 二.确保安装的 snapd 版本为最新版本 三.删除 certbot-auto 及系统中已安装的任何 certbot 软件包 四.安装 Certbot 五.建立系统的 ...

  3. 实现.Net程序中OpenTracing采样和上报配置的自动更新

    前言 OpenTracing是一个链路跟踪的开放协议,已经有开源的.net实现:opentracing-csharp,同时支持.net framework和.net core,Github地址:htt ...

  4. wp配置后台自动更新

    2019独角兽企业重金招聘Python工程师标准>>> Update Configuration Automatic updates can be configured using ...

  5. 后盾网lavarel视频项目---phpstorm 配置ftp, 自动更新同步代码

    后盾网lavarel视频项目---phpstorm 配置ftp, 自动更新同步代码 一.总结 一句话总结: 1.在phpstorm中设置:路径Tools/Deployment/Configuratio ...

  6. 带你入门SpringCloud 之 通过SpringCloud Bus 自动更新配置

    前言 在<带你入门SpringCloud统一配置 | SpringCloud Config>中通过 SpringCloud Config 完成了统一配置基础环境搭建,但是并没有实现配置修改 ...

  7. 微服务架构开发实战:分布式消息总线,实现配置信息的自动更新

    实现配置信息的自动更新 在上一篇文章中节演示了集成Spring Cloud Bus 的过程.在示例中,当微服务实例启动的时候,可以去加载最新的配置信息.当时这种做法有一定的局限性,即只有在应用启动的过 ...

  8. [系统]_[WIN7和WIN10]_[禁用自动更新批处理脚本]

    场景 朋友说WIN10的补丁更新怕了,现在WIN10的补丁质量真是差,和iOS有一拼,就是新补丁带来新BUG. 问我如何禁用自动更新.之前花了很长的时间写了一个python脚本,发现无法修改本地组策略 ...

  9. linux8软件升级,CentOS 8设置自动更新的完整步骤

    你可以为数据和计算机做的最好的事情就是确保它们的安全.就像打开更新一样简单,但是,大多数使用CentOS 8的人都不知道该怎么做. Setup-CentOS-8-Automatic-Updates 在 ...

最新文章

  1. Java项目:网上选课系统(java+SSM+jsp+mysql+maven)
  2. IO流(文件的读写)---本文的正确性有待您验证。
  3. Java中 Iterable 和 Iterator 的区别
  4. 教科书上的LDA为什么长这样?
  5. asp.net接受表单验证格式后再提交数据_如何解析 el-form-renderer 表单渲染器1.14.0...
  6. 买买买!iPhone 13全系曝光:价格给力
  7. Chrome 更新导致部分 macOS 的文件系统损坏,无法重启
  8. [NOIP2011]聪明的质检员
  9. hdu 1251(字典树)
  10. Linux-Discuz安装LAMP
  11. 大数据+人工智能:实践AI深度学习的十大惊艳案例
  12. 在mac homebrew_您可以通过Homebrew在Mac上获得的最佳命令行工具
  13. PCIe Gen4 Equlization失败掉速到Gen3的问题排查
  14. Matlab中矩阵的右上角有一撇表示什么意思
  15. RecyclerView --- 分割线
  16. MySQL索引(详细,1万字长文)
  17. oracle bpm 表单,Oracle BPM 安全认证
  18. 哈尔滨工业大学2022计算机系统大作业
  19. 2016的ChinaJoy沦为ChinaVR?
  20. 【已解决】leaflet比例尺:L.control.scale 单位国际化(m:米、km:公里、ft:英尺、mi:英里)

热门文章

  1. 精通Java设计模式从初见到相爱之工厂+策略模式(3)
  2. 详谈如何定制自己的博客园皮肤【转】
  3. 操作系统与多核处理器
  4. C# 泛型多种参数类型与多重约束 示例
  5. CentOS 5 CentOS 6 启动流程及关键步骤
  6. TabHost两种实现方式
  7. wpf 可以取消的单选checkbox
  8. 做移动互联网App,你的测试用例足够吗?
  9. 生成jar文件的方法
  10. 如何判断一个程序是 32bit 还是 64bit ?