如何在.Net Core 2.2中正确使用ConfigurationManager.

我在 .net core 的 Web 应用程序中使用此方法获取配置值时遇到一些问题。


 var settings =  ConfigurationManager.GetSection("JwtBearerSettings/Issuer");

该方法由我引用的一个项目调用。它也在 .NET Core 2.2 中,配置设置位于文件中


应用程序设置.json


问题是,当我调试时,我总是发现settings == null我一直在寻找类似的问题,但我无法解决这个问题。


我的json是


{

     "JwtBearerSettings": {

        "Issuer": "Auth.MyStuff.Api",

        "PrivateKey": "Blablabla",

        "ExpirationTime": "15"

        }

}

您知道是否可以使用这种方法吗?


为了使用我的库获取网络应用程序配置,我是否遗漏了一些东西?


缥缈止盈
浏览 110回答 2
2回答

UYOU

鉴于您已经创建了这样的属性:public class Startup{    public Startup(IConfiguration configuration)    {        Configuration = configuration;    }    public IConfiguration Configuration { get; }}然后您可以访问这些元素,如下所示:var issuer = Configuration["JwtBearerSettings:Issuer"],

慕婉清6462132

读取配置的最简单方法是一次读取一个值。结构化数据用冒号分隔,因此您的示例变为:var issuer = Configuration["JwtBearerSettings:Issuer"];如果您正在阅读大量设置,这显然会很痛苦。因此,您可以简单地将模型对象绑定到一个部分。例如,如果您有一个包含属性的模型对象,比如说class JwtBearerSettings {&nbsp; &nbsp; public string Issuer {get;set;}}然后您可以使用GetSection绑定到设置对象:var jbs = new JwtBearerSettings();Configuration.GetSection("JwtBearerSettings").Bind(jbs);许多库都使用这种模式,因为它可以让您根据需要提供尽可能少或尽可能多的配置 - 只要模型预先填充了合理的默认值。.Net Core 支持的第三种模式可以与 DI 一起使用:在这里您可以向服务工厂注册您的配置模型:var jbs = Configuration.GetSection("JwtBearerSettings");services.Configure<JwtBearerSettings>(jbs);并且,要在服务中引用您的设置,只需添加 IOptions 作为 ctor 参数:public MyService(IOptions<JwtBearerSettings> jwtOptions){&nbsp; &nbsp; Config = jwtOptions.Value;}
打开App,查看更多内容
随时随地看视频慕课网APP