2 回答
TA贡献1878条经验 获得超4个赞
鉴于您已经创建了这样的属性:
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
}
然后您可以访问这些元素,如下所示:
var issuer = Configuration["JwtBearerSettings:Issuer"],
TA贡献1804条经验 获得超2个赞
读取配置的最简单方法是一次读取一个值。结构化数据用冒号分隔,因此您的示例变为:
var issuer = Configuration["JwtBearerSettings:Issuer"];
如果您正在阅读大量设置,这显然会很痛苦。因此,您可以简单地将模型对象绑定到一个部分。例如,如果您有一个包含属性的模型对象,比如说
class JwtBearerSettings {
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)
{
Config = jwtOptions.Value;
}
- 2 回答
- 0 关注
- 102 浏览
添加回答
举报