加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-core – 如何在.Net Core中将App.config更改为json配置

发布时间:2020-12-16 03:42:40 所属栏目:asp.Net 来源:网络整理
导读:我的项目使用App.config来读取配置属性.例: ConfigurationManager.AppSettings [ “MaxThreads”] 你知道我可以用来从json读取配置的库吗?谢谢. 解决方法 ASP.NET Core中通常不提供ConfigurationManager静态类.相反,您应该使用新的ConfigurationBuilder系
我的项目使用App.config来读取配置属性.例:

ConfigurationManager.AppSettings [ “MaxThreads”]

你知道我可以用来从json读取配置的库吗?谢谢.

解决方法

ASP.NET Core中通常不提供ConfigurationManager静态类.相反,您应该使用新的ConfigurationBuilder系统和强类型配置.

例如,默认情况下,使用类似于以下内容的东西在Startup类中构建配置:

public Startup(IHostingEnvironment env)
{
    var builder = new ConfigurationBuilder()
        .SetBasePath(env.ContentRootPath)
        .AddJsonFile("appsettings.json",optional: true,reloadOnChange: true)
        .AddJsonFile($"appsettings.{env.EnvironmentName}.json",optional: true)
        .AddEnvironmentVariables();
    Configuration = builder.Build();
}

这将从appsettings.json文件加载配置,并将密钥附加到配置根目录.如果您有以下appsettings文件:

{
  "Logging": {
    "IncludeScopes": false,"LogLevel": {
    "Default": "Debug","System": "Information","Microsoft": "Information"
    }
  },"ThreadSettings" : {
     "MaxThreads" : 4
  }
}

然后,您可以创建类似于以下内容的强类型ThreadSettings类:

public class ThreadSettings
{
    public int MaxThreads {get; set;}
}

最后,您可以通过向ConfigureServices方法添加Configure方法将此强类型设置类绑定到您的配置.

using Microsoft.Extensions.Configuration;
public void ConfigureServices(IServiceCollection services)
{
    services.Configure<ThreadSettings>(Configuration.GetSection("ThreadSettings"));
}

然后,您可以通过将其注入构造函数来从任何其他位置注入和访问您的设置类.例如:

public class MyFatController
{
    private readonly int _maxThreads;
    public MyFatController(ThreadSettings settings)
    {
        maxThreads = settings.MaxThreads;
    }
}

最后,如果您确实需要访问底层配置,您还可以在ConfigureServices中注入它以使其在您的类中可用.

public void ConfigureServices(IServiceCollection services)
{
    services.AddSingleton(Configuration);
}

您可以在docs或various blogs上阅读有关配置的更多信息

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读