.NET Core的配置文件

节选自这里html

以Json为例json

Json配置,须要安装 Microsoft.Extensions.Configuration.Json 包。数组

调用AddJsonFile把Json配置的Provider添加到ConfigurationBuilder中。app

class Program { public static IConfigurationRoot Configuration { get; set; } static void Main(string[] args) { var builder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json"); Configuration = builder.Build(); } }

SetBasePath是指定从哪一个目录开始查找appsettings.json。若是appsettings.json在configs目录中,那么调用AddJsonFile应该指定的路径为"configs/appsettings.json"。ide

下面是演示用的Json配置,后面会讲解全部读取它的方法函数

{ "AppId": "12345", "Logging": { "IncludeScopes": false, "LogLevel": { "Default": "Debug", "System": "Information", "Microsoft": "Information" } }, "GrantTypes": [ { "Name": "authorization_code" }, { "Name": "password" }, { "Name": "client_credentials" } ] }

读取JSON配置

1.使用Key读取ui

Configuration["AppId"]; // 结果 12345
Configuration["Logging:IncludeScopes"]; // 结果 false
Configuration["Logging:LogLevel:Default"]; // 结果 Debug
Configuration["GrantTypes:0:Name"]; // 结果 authorization_code

读取嵌套的配置,使用冒号隔开;读取数组形式的配置,使用数组的下标索引,0表示第一个。spa

如在其余地方用到Configuration的时候,能够经过构造函数注入IConfiguration。code

首先配置IConfiguration的依赖orm

services.AddSingleton<IConfiguration>(Configuration);

而后在经过构造函数注入

private readonly IConfiguration _configuration; public GetConfig(IConfiguration configuration) { _configuration = configuration; }

2.使用 GetValue<T> 

这是一个扩展方法,使用它须要安装 Microsoft.Extensions.Configuration.Binder 包。

Configuration.GetValue<int>("AppId", 12345); // 结果 12345
Configuration.GetValue<bool>("Logging:IncludeScopes", false); // 结果 false
Configuration.GetValue<string>("Logging:LogLevel:Default", "Debug"); // 结果 Debug
Configuration.GetValue<string>("GrantTypes:0:Name", "authorize_code"); // 结果 authorization_code

GetValue方法的泛型形式有两个重载,一个是GetValue("key"),另外一个能够指定默认值,GetValue("key",defaultValue)。若是key的配置不存在,第一种的结果为default(T),第二种的结果则为指定的默认值。

相关文章
相关标签/搜索