.Net Core 读取appsettings.json中的配置

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiaouncle/article/details/83108556

在.net core中默认是没有*.config 文件的配置文件都是*.json

一、NuGet包管理器引用或者在project.json写入下面这些包

 "Microsoft.Extensions.Options.ConfigurationExtensions": "2.1.1",
 "Microsoft.Extensions.Configuration.Json": "2.1.1"

二、修改 appsettings.json

 {
  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
  },
  "MyOwn": {
    "Name": "wula",
    "Age": 12
  }
}

三、在Models文件夹中新建一个MyOwnModel类来对应配置信息

public class MyOwnModel
{
    public string Name { get; set; }
    public string Age { get; set; }
}

四、配置Startup.cs

首先用AddOptions() 初始化注入IOptions<T>,然后Configure<MyOwnModel>则是自动初始化MyOwnModel实例并且映射appSettings里的配置

public void ConfigureServices(IServiceCollection services)
{
    services.Configure<CookiePolicyOptions>(options =>
    {
        // This lambda determines whether user consent for non-essential cookies is needed for a given request.
        options.CheckConsentNeeded = context => true;
        options.MinimumSameSitePolicy = SameSiteMode.None;
    });
    services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

    //初始化MyOwnModel实例并且映射appSettings里的配置
    services.AddOptions();
    services.Configure<MyOwnModel>(Configuration.GetSection("MyOwn"));
}

五、在Controller中使用

public class TestController : Controller
{
    private IOptions<MyOwnModel> settings;
    public TestController(IOptions<MyOwnModel> settings)
    {
        this.settings = settings;
    }
    public IActionResult Test()
    {
        ViewData["Name"] = this.settings.Value.Name;
        ViewData["Age"] = this.settings.Value.Age;
        return View();
    }
}

猜你喜欢

转载自blog.csdn.net/xiaouncle/article/details/83108556