场景:我们会把一些配置信息,写在配置文件文件中,便于我们修改和配置。在之前的asp.net 中可以通过ConfigurationManger来获取web.config里面的配置。在.net core 如何操作配置信息。

我们借助“Options Pattern” 的思想来解决在配置文件的获取。

我有一个配置文件appsetting.json内容如下:

{
"ConnectionStrings": {
"MySql": "Server=localhost;database=blog;uid=root;pwd=Password12!;"
},
"FileServers": [
{
"Host": "127.0.0.1",
"Port": ""
},
{
"Host": "127.0.0.1",
"Port": ""
}
],
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
}
}
}

现在要获取FileServers节点下面的信息,显然是一个数组或者集合,总之是多个值。

我们在项目的启动时候火读取appsetting.json文件的内容,此时,可以将我们需要的内容通过IOptions注入到容器中,当我们需要用到这些配置信息的时候再去容器里面获取:

直接上代码 在Startup里面中:

   // This method gets called by the runtime. Use this method to add services to the container.
// For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=398940
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
// services.AddOptions().Configure<FormatOptions>(Configuration.GetSection("Format"));
///using "Microsoft.Extensions.Options.ConfigurationExtensions": "1.1.0"
services.AddOptions().Configure<List<FileServerModel>>(Configuration.GetSection("FileServers"));
}

在HomeController 里面 修改构造函数 获取IOptions里面的值:

  public List<FileServerModel> FileServers { set; get; }

        public HomeController(IOptions<List<FileServerModel>> options)
{
FileServers = options.Value;
}

这样appsetting.json里面的值就可以获取到了。

最新文章

  1. Function类型
  2. AFNetworking+Python+Flask+pyOpenSSL构建iOS HTTPS客户端&amp;服务器端
  3. 模拟淘宝登录和购物车功能:使用cookie记录登录名,下次登录时能够记得上次的登录名,使用cookie模拟购物车功能,使用session记住登录信息并验证是否登录,防止利用url打开网站,并实现退出登录功能
  4. JQuery增删改查
  5. [C# 基础知识梳理系列]专题六:泛型基础篇——为什么引入泛型
  6. Java IO5:序列化与反序列化
  7. sqlite数据库方言配置
  8. 使用Ramdisk 加速 Visualstudio 编译调试
  9. 关于Java的对象、数组、String类的具体用法
  10. 针对Oracle数据库中SCOTT方案的多表查询一个例子
  11. 第三章 JavaScript操作BOM对象
  12. linux 用户密码过期时间
  13. js 模拟css3 动画
  14. eclipse打断点调试进入到class文件中,不显示变量值的解决办法汇总
  15. Luogu 1351 NOIP 2014 联合权值(贪心,计数原理)
  16. Logstash使用jdbc_input同步Mysql数据时遇到的空时间SQLException问题
  17. python 3 操作mysql数据库的方法
  18. [原]NGUI之按钮置灰
  19. web09 struts2配置 struts2入门
  20. Win7 开启显示快速启动工具栏,发送到快速启动右键菜单

热门文章

  1. dubox首次调用消费者执行两次问题
  2. BZOJ 1717: [Usaco2006 Dec]Milk Patterns 产奶的模式 [后缀数组]
  3. dubbox 的各种管理和监管
  4. [LeetCode] Reverse Words in a String II 翻转字符串中的单词之二
  5. MVC系列——MVC源码学习:打造自己的MVC框架(三:自定义路由规则)
  6. mac 多php版本安装
  7. 关于EventSource的精华
  8. Xtrabackup原理及使用innobackupex进行MySQL数据库备份恢复
  9. 解决vs崩溃 无法打开工程 新建工程显示未找到约束
  10. Android基础总结(五)