WebAPI-配置
WebAPI-配置
ASP.NET Core 按照以下顺序加载配置源,后面的配置源可以覆盖前面的配置源:
appsettings.jsonappsettings.{Environment}.jsonsecrets.json(仅限开发环境)环境变量
命令行参数
ASPNETCORE_ENVIRONMENT
运行环境:ASP.NET Core会从环境变量中读取名字为ASPNETCORE_ENVIRONMENT的值,从而读取相应的配置文件(appsetting.json)
1 | |
除了可以在系统的环境变量中配置此项之外,还可以直接在ide中配置启动时的环境变量
而ide会从launchSettings.json文件中读取来定义项目在开发环境中的启动配置,其中就包含了environmentVariables一项
此项定义的环境变量,会被ide加载,在启动时应用
1 | |
综上,我总结了三种配置环境变量的方式
- 系统中配置环境变量
- 在开发时,通过ide配置环境变量(会读取launchSettings.json中的内容)
- 在Gitlab的CI中,配置项目启动的环境变量
IWebHostEnvironment
IWebHostEnvironment 接口在 ASP.NET Core 中用于提供有关当前托管环境的信息,例如环境名称(如开发、生产、测试等)
获取环境名称:通过
EnvironmentName属性获取当前环境的名称。访问内容根目录:通过
ContentRootPath属性获取应用的内容根目录路径。访问 Web 根目录:通过
WebRootPath属性获取应用的 Web 根目录路径
无论是在Program还是其他文件中,我们只需要将IWebHostEnvironment注入,即可直接获取想要的内容
IHostEnvironment 是 ASP.NET Core 3.0 及之后版本中引入的接口,用于替代 IWebHostEnvironment
secrets.json
在开发过程中,如果使用appsetting.json的文件配置方式来配置一些应用的账号和密码,然后上传到github上,会导致非常严重的安全问题
这时我们可以使用secrets.json来保存我们的文件配置
数据库配置
在之前的项目中,数据库服务的配置方式是通过DbContext文件中,直接使用明文字符串进行配置
我们可以在Program.cs文件中,利用配置文件的方式直接进行配置
program.cs
1 | |
DbContext
需要注入的是,必须将DbContextOptions作为构造函数的形参注入到DBContext中,并将对象options传给父类DbContext的构造函数中调用
1 | |
配置好后,就可以直接在服务层注入DBContext依赖,并直接调用