一,appsettings.json配置添加如下
"MyOptions": { "Id": 2, "Name": "appsettings" }
二,使用IConfiguration讀取配置,如下控制器代碼
namespace TestCore.Controllers { [ApiController] [Route("[controller]/[action]")] public class ConfigTestController : ControllerBase { private IConfiguration _configuration; public ConfigTestController( IConfiguration configuration) { _configuration = configuration; } public string GetConfiguration() { return "-configuration獲取:" + _configuration.GetSection("MyOptions").GetValue<string>("Name"); } } }
ps:測試代碼沒有更改Program默認配置文件所以默認讀的是appsettings.json配置文件
二,IOptions的使用
namespace TestCore.Controllers { [ApiController] [Route("[controller]/[action]")] public class ConfigTestController : ControllerBase { private TestModel _options; public ConfigTestController(IOptions<TestModel> options) { _options = options.Value; } public string GetIOptions() { return "IOptions獲取:" + _options.Name; } } }
Startup的ConfigureServices有兩種寫法,第一是讀取配置文件,第二是自己給實體賦值
public void ConfigureServices(IServiceCollection services) { services.Configure<TestModel>(Configuration.GetSection("MyOptions")); //獲取默認配置文件的值 //services.Configure<TestModel>(m=> { m.Name = "startup讀取";m.Id = 1; }); //獲取自己實例的配置 services.AddControllers(); }
綜上所有配置的使用方法