ASP.NET Core中的配置详解

 更新时间:2021年04月08日 15:42:37   作者:conan  
这篇文章主要介绍了ASP.NET Core中的配置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

ASP.NET Core 提供了一个灵活可扩展,基于键值的配置系统. 但是配置系统独立于ASP.NET Core是Microsoft.Extensions 类库的部分. 它可以用于任何类型的应用程序

1、以键-值对的形式读取配置

appsettings.json 文件:

{
  "Position": {
    "Title": "编辑器",
    "Name": "Joe Smith"
  },
  "MyKey": "My appsettings.json Value",
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*"
}

在ConfigureServices方法里面添加如下测试代码:

var myKeyValue = Configuration["MyKey"];
    var title = Configuration["Position:Title"];
    var name = Configuration["Position:Name"];
    var defaultLogLevel = Configuration["Logging:LogLevel:Default"];

2、多环境配置

使用默认配置,EnvironmentVariablesConfigurationProvider 会在读取 appsettings.json、appsettings.Environment.json 和机密管理器后从环境变量键值对加载配置 。 因此,从环境中读取的键值会替代从 appsettings.json、appsettings.Environment.json 和机密管理器中读取的值 。在 launchSettings.json 中设置的环境变量,在 launchSettings.json 中设置的环境变量将替代在系统环境中设置的变量。

3、读取结构化的配置数据

添加一个类 TestSubSectionConfig 对应于配置文件中的 subsection 节点

public class TestSubSectionConfig
  {
    public string SubOption1 { get; set; }
    public string SubOption2 { get; set; }
  }

在ConfigureServices方法里面添加如下测试代码:

//使用GetSection解析配置文件的节
var subsectionOptions = Configuration.GetSection("subsection").Get<TestSubSectionConfig>();
var suboption2 = subsectionOptions.SubOption2;

Console.WriteLine($"subsection:suboption2: {suboption2}");

如果需要在Controller里面使用,可以通过依赖注入的方式:

在ConfigureServices里面注册配置项。

public void ConfigureServices(IServiceCollection services)
{
  //注册配置到服务容器
  services.Configure<TestSubSectionConfig>(Configuration.GetSection("subsection"));

  //var subsectionOptions = Configuration.GetSection("subsection").Get<TestSubSectionConfig>();
  //services.Configure<TestSubSectionConfig>(options =>
  //{
  //  options.SubOption1 = subsectionOptions["suboption1"];
  //  options.SubOption2 = subsectionOptions["suboption2"];
  // });

}

public class HomeController : Controller
{
  private TestSubSectionConfig _subSectionConfig;
  private ILogger<HomeController> _logger;

  public HomeController(IOptions<TestSubSectionConfig> option, ILogger<HomeController> logger)
  {
    _subSectionConfig = option.Value;
    _logger = logger;
  }

  public IActionResult Index()
  {
    _logger.LogInformation($"SubOption1: {_subSectionConfig.SubOption1}");
    _logger.LogInformation($"SubOption2: {_subSectionConfig.SubOption2}");
    return View();
  }
}

到此这篇关于ASP.NET Core中的配置详解的文章就介绍到这了,更多相关ASP.NET Core配置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • .net core项目中常用的几款类库详解(值得收藏)

    .net core项目中常用的几款类库详解(值得收藏)

    这篇文章主要给大家介绍了关于.net core项目中常用的几款类库的相关资料,文章通过示例代码介绍的非常详细,对大家学习或者使用.net core具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-04-04
  • asp.net 站点URLRewrite使用小记

    asp.net 站点URLRewrite使用小记

    asp.net的底层运作已经也乱谈过一番, 今天记一下URLRewrite的方法。
    2009-11-11
  • ASP.net实现页面跳转的方法

    ASP.net实现页面跳转的方法

    在ASP.NET进行页面开发时候经常遇到需要进行页面跳转的操作。这个其实并不难,关键是知不知道的问题。下面给出操作方法。
    2013-06-06
  • 使用.Net Core实现的一个图形验证码功能

    使用.Net Core实现的一个图形验证码功能

    SimpleCaptcha是一个使用简单,基于.Net Standard 2.0的图形验证码模块。这篇文章主要介绍了使用.Net Core实现的一个图形验证码功能,需要的朋友可以参考下
    2021-12-12
  • .net微信开发 如何获取AccessToken

    .net微信开发 如何获取AccessToken

    这篇文章主要为大家详细介绍了微信开发中AccessToken的获取方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • ASP.NET Core项目结构教程(4)

    ASP.NET Core项目结构教程(4)

    这篇文章主要为大家详细介绍了ASP.NET Core项目结构,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • .NET Core读取配置文件

    .NET Core读取配置文件

    这篇文章介绍了.NET Core读取配置文件的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • .NET 6开发TodoList应用之实现DELETE请求与HTTP请求幂等性

    .NET 6开发TodoList应用之实现DELETE请求与HTTP请求幂等性

    这篇文章主要介绍了在.NET6开发中如何实现DELETE请求以及HTTP请求幂等性的,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2021-12-12
  • ASP.NET MVC使用Ajax的辅助的解决方法

    ASP.NET MVC使用Ajax的辅助的解决方法

    我们将大致了解一下ASP.NET MVC如何使用Ajax的辅助方法
    2013-03-03
  • 微信开发(一) asp.net接入

    微信开发(一) asp.net接入

    我们要进行微信公众平台的开发,第一步当然是要有公众号了。什么?不知道什么是微信公众号,看来你还要先回炉炼炼了,呵呵。通俗的说,我们微信平台就好像是一个大社会,里面有个体人,也有各种组织机构。
    2016-05-05

最新评论