ASP.NET Core 提供了一个默认的配置文件——“appsettings.json”,这个文件中写了启动ASP.NET Core的一些配置,比如环境、log等级等,也支持写入自定义的JSON对象。
前言
这是学习ASP.NET Core的笔记,主要是根据微软MVP杨旭的课程来走的,当然也有自己的偏向。关于这些内容的笔记和代码以及更多的简介在Github上。
ASP.NET Core 提供了一个默认的配置文件——“appsettings.json”,这个文件中写了启动ASP.NET Core的一些配置,比如环境、log等级等,也支持写入自定义的JSON对象。
这一篇主要是看 ASP.NET Core 项目的配置文件等内容。
ASP.NET Core 中的配置信息
特点
- 使用键值对;
- 存储在内存、JSON、XML、INI 等文件,或者系统环境变量;
- 配置信息与配置系统是解耦的,不是和某一部分写死的;
- 可以依赖注入。
信息源
按照查找顺序排序
- 配置文件通常为
appsettings.json
和appsettings.{Environment}.json
- Secret Manager(?)(优先级高于
appsettings.json
) - 环境变量
- 命令行参数(优先级最高)
自定义配置
- 在
appsettings.json
里面添加自定义信息; - 在
StartUp
的构造方法中添加参数,类型为IConfiguration
,赋值给一个readonly
的私有变量,或者只有get
访问器的变量;
使用索引获取
实际上这个接口对象实际上是一个存有配置信息键值对的列表,可以通过索引比如:
JSON
|
|
CSharp
|
|
映射到类
但是 CSharp作为强类型语言,比较好的做法是用强类型表示,可以避免很多错误。
将自定义的 JSON 对象映射到一个类中:
- 创建类
|
|
- 注册服务
|
|
- 使用自定义配置文件,如
config.json
,需要更改CreateHostBuilder
方法,使其返回值调用ConfigureAppConfiguration
方法:
|
|
使用配置
完成上文的服务注入后:
在接口中注入,构造函数添加以下参数:
|
|