2 回答

TA貢獻(xiàn)1878條經(jīng)驗(yàn) 獲得超4個(gè)贊
鑒于您已經(jīng)創(chuàng)建了這樣的屬性:
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
}
然后您可以訪問(wèn)這些元素,如下所示:
var issuer = Configuration["JwtBearerSettings:Issuer"],

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超2個(gè)贊
讀取配置的最簡(jiǎn)單方法是一次讀取一個(gè)值。結(jié)構(gòu)化數(shù)據(jù)用冒號(hào)分隔,因此您的示例變?yōu)椋?/p>
var issuer = Configuration["JwtBearerSettings:Issuer"];
如果您正在閱讀大量設(shè)置,這顯然會(huì)很痛苦。因此,您可以簡(jiǎn)單地將模型對(duì)象綁定到一個(gè)部分。例如,如果您有一個(gè)包含屬性的模型對(duì)象,比如說(shuō)
class JwtBearerSettings {
public string Issuer {get;set;}
}
然后您可以使用GetSection綁定到設(shè)置對(duì)象:
var jbs = new JwtBearerSettings();
Configuration.GetSection("JwtBearerSettings").Bind(jbs);
許多庫(kù)都使用這種模式,因?yàn)樗梢宰屇鶕?jù)需要提供盡可能少或盡可能多的配置 - 只要模型預(yù)先填充了合理的默認(rèn)值。
.Net Core 支持的第三種模式可以與 DI 一起使用:
在這里您可以向服務(wù)工廠注冊(cè)您的配置模型:
var jbs = Configuration.GetSection("JwtBearerSettings");
services.Configure<JwtBearerSettings>(jbs);
并且,要在服務(wù)中引用您的設(shè)置,只需添加 IOptions 作為 ctor 參數(shù):
public MyService(IOptions<JwtBearerSettings> jwtOptions)
{
Config = jwtOptions.Value;
}
- 2 回答
- 0 關(guān)注
- 145 瀏覽
添加回答
舉報(bào)