在Asp.Net Core中关于appsettings.json的快速简便的读取和设置方式

Posted cfive

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Asp.Net Core中关于appsettings.json的快速简便的读取和设置方式相关的知识,希望对你有一定的参考价值。

在Asp.Net Core 中,配置信息已从原来Asp.Net的XML格式改为了更为流行的JSON格式,配置文件也由原来的App.config改成了appsettings.json。

那么对于这个appsettings.json中的配置信息的读取,使用最多的是使用与配置对应的实体模型,调用services.Configure<TOptions>()泛型方法载入配置。

这种方式的好处在于,将配置数据载入到对应的实体中后,项目的其它地方都可以使用,常见的是用于Controller中。

其缺点是不快速简便,需要设计对应的Model,构造方法中传入实体,Configure方法中载入数据等等。在有些地方是感觉麻烦的。

那么今天就介绍一种在某些即取即用的场景下能方便快捷的读取配置信息的方法:

首先这是appsettings.json中的内容:

{
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Warning"
    }
  },
  //--系统配置项
  "ConnectionStrings": {
    "sqlconn": "Server=(local);Database=Blogging;Uid=sa;Pwd=123456;"
  },
  //--自定义配置项
  "SqlConnSetting": {
    "Server": "(local)",
    "Database": "Blogging",
    "Uid": "sa",
    "Pwd": "123456"
  }
}

然后,我需要要项目启动时配置EF DbContext的数据库连接字符串

有两种方法:

第一种就是使用.Net Core已经封装好的Configuration.GetConnectionString()方法,但这种方式需要将连接配置放在ConnectionStrings之中。

第二种就是使用IConfiguration接口中的[]索引方法,这种方法使用起来超级简单。这种方法在JS中处理Json对像时也是经常用到的。

技术分享图片

在这种场景下,我个人还是比较喜欢这种方式。

 

以上是关于在Asp.Net Core中关于appsettings.json的快速简便的读取和设置方式的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET Core 仅部署适用的 appsettings.EnvironmentName.json

为 HTTPS 配置 ASP.NET Core 2.0 Kestrel

ASP.NET Core框架探索之Authentication

asp.net core 6 新特性,支持HTTP/3 端点发布

在Visual Studio 2010中关于asp.net的验证码登录调试时界面出现乱码怎么回事?急!!!

asp.net C# 中关于 var 类型的疑问?