亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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

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

C#
縹緲止盈 2023-08-20 10:05:01
我在 .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"        }}您知道是否可以使用這種方法嗎?為了使用我的庫獲取網絡應用程序配置,我是否遺漏了一些東西?
查看完整描述

2 回答

?
UYOU

TA貢獻1878條經驗 獲得超4個贊

鑒于您已經創建了這樣的屬性:


public class Startup

{

    public Startup(IConfiguration configuration)

    {

        Configuration = configuration;

    }


    public IConfiguration Configuration { get; }

}

然后您可以訪問這些元素,如下所示:


var issuer = Configuration["JwtBearerSettings:Issuer"],


查看完整回答
反對 回復 2023-08-20
?
慕婉清6462132

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;

}


查看完整回答
反對 回復 2023-08-20
  • 2 回答
  • 0 關注
  • 163 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號