ASP.NET Core读取appsettings.json的配置

这边博客记录迁移到ASP.NET Core过程中读取配置文件的变化。在老版本的ASP.NET里,项目的全局配置一般都存在web.config里的appSettings里,只需要用ConfigurationManager.AppSettings[“Foo”]就可以把名为Foo的变量取出来。在ASP.NET Core里,访问配置文件的方式也有了很大变化。但是ASP.NET Core里web.config已经被appsettings.json替换,加上ASP.NET Core里大量用了依赖注入(Dependency Injection),这使得读取配置信息也和之前不一样,新的框架下取配置更加灵活和易于扩展。这里用一个小例子演示如何通过Options.ConfigurationExtensions这个来取得配置。

image

然后在project.json里下面这行代码

"Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0",

image

然后在appSettings里添加一个AppSettings的字段,包含Foo和Bar两个配置及其值。

image

创建一个AppSettings.cs,

image

现在就可以在Startup.cs里配置,首先用AddOptions() 初始化注入IOptions<T>,然后Configure<AppSettings>则是自动初始化AppSettings实例并且映射appSettings里的配置

// Add functionality to inject IOptions<T>
services.AddOptions();

services.Configure<AppSettings>(Configuration.GetSection("AppSettings"));

image

然后修改一下HomeController,用about二面来做一下测试

image

现在打开About页面,就会发现Foo和Bar这2个配置都正确读出来了

image

Leave a Reply

Your email address will not be published. Required fields are marked *