ASP.NET Core项目解读之appsettings.json

  环境:ASP.NET Core3.1

  ASP.NET Core是一个全新的Web开发平台,微软在它上面构建了MVC、SingalR、GRPC、Orleans这样广泛使用的Web框架,我们先以MVC框架为例介绍利用ASP.NET Core构建项目的常见名词。这篇文章介绍appsettings.json

ASP.NET  Core MVC项目文件夹解读

 

  在开发项目的过程当中,生产环境与调试环境的配置是不一样的,比如连接字符串。 ASP .NET Core 支持利用环境变量来动态配置 JSON 文件。ASP.NET Core 引用了一个特定的环境变量 ASPNETCORE_ENVIRONMENT 来描述应用程序当前运行的环境。这个变量可以被设置为任何你喜欢的值,但是有三个值被约定使用: DevelopmentStaging 和 Production。

一、Appsettings.json

  首先在 ASP .NET Core 项目当中添加一个appsettings.json(默认都有该文件)文件,内容如下图:

   再继续添加 appsettings.Development.json和appsettings.Production.json两个配置文件。解决方案管理器如下图:

  我们可以在appsettings.Development.json和appsettings.Production.json分别设置相应的配置信息,比如数据库连接

 

 二、自定义配置json

  有时候一个复杂的项目配置信息比较多,Appsettings.json会很复杂所以一般都会把一些单独分离出来,比如将数据库连接配置分离出来。

  首先在 ASP .NET Core 项目当中添加一个connectionStrings.json文件,内容如下:

   再继续添加 connectionStrings.Development.json和connectionStrings.Production.json两个配置文件。如下图:

 

三、设置环境

  1、方案一

    ASP.NET Core控制环境切换最核心的东西是“ASPNETCORE_ENVIRONMENT”环境变量,它直接控制当前应用程序运行的环境类型。您可以通过在项目上右键菜单选择“属性”选项,然后切换到“调试”标签来修改此环境变量。如下图:

 

    此环境变量框架默认提供了三个值,当然也可以定义其它的值:

    •   Development(开发)
    •   Staging(预演)
    •   Production(生产)

  

  2、方案二

  也可以通过ASP.Net Core包含的launchSettings.json的文件设置环境,可以在项目中“Properties”文件夹中找到该文件。

 四、.NET Core类库项目中如何读取appsettings.json中的配置

  有2种方法,一种叫丑陋的方法 —— IConfiguration ,一种叫优雅的方法 —— IOptions 。

  1、先看丑陋的方法

    比如在项目中需要读取 appsettings.Development.json中的数据库连接字符串,上边已经介绍了如何根据环境切换配置,如果想读取appsettings.Production.json的配置,就按照上边的两种方式切换即可。

  

    首先在 Startup 的 ConfigureServices() 方法中进行注入:

    然后在HomeController中调用:

    展示效果: 

   2、优雅的方法

    比如在项目中需要读取 appsettings.Development.json中的数据库连接字符串,上边已经介绍了如何根据环境切换配置,如果想读取appsettings.Production.json的配置,就按照上边的两种方式切换即可。

    首先我们在appsettings.Development.json 都添加一个 ConnectionStrings节点。 

   

    然后定义一个存放连接字符串的配置类 ConnectionStrings(类的名称要和节点名称保持一致): 

    在 Startup 的 ConfigureServices() 中注入进去: 

     然后在HomeController中调用,给 HomeController的构造函数参数中添加 IOptions<ConnectionStrings> 接口,通过 IOptions<ConnectionStrings> 读取配置: 

     

    效果如下: 

  

 五、读取自定义配置Json

  1、第一种方法:IConfiguration方式

  在根目录建一个PersonConfig.json配置文件 

   

  

   首先在Program中, 调用 ConfigureAppConfiguration 以指定应用的配置提供程序: 

    

  然后在HomeController中调用:

   效果展示:

  

   2、第二种方式 IOPtions   

  在根目录建一个PersonConfig.json配置文件  

   

   首先在Program中, 调用 ConfigureAppConfiguration 以指定应用的配置提供程序: 

 

  新建实体:(类的名称要和节点名称一致)

  

   在startup的 ConfigureServices中注入:

   然后在HomeController中调用:

 

   展示效果:

 

原文地址:https://www.cnblogs.com/qtiger/p/12960639.html