您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“ASP.Net Core MVC中獲取配置信息”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“ASP.Net Core MVC中獲取配置信息”這篇文章吧。
在之前新建的項(xiàng)目中, 已經(jīng)默認(rèn)有appsettings.json文件了, 并且appsettings.json默認(rèn)會(huì)加載到項(xiàng)目中來(lái), 至于為什么會(huì)默認(rèn)加載, 我們可以通過(guò)源碼進(jìn)行分析, VS2017反編譯不好用, F12看不到完整的代碼, 這里我使用ILSpy反編譯了.
我們找到WebHost.CreateDefaultBuilder(args), 也就是CreateDefaultBuilder方法, 看到源碼如下圖
紅框部分就是默認(rèn)的加載appsettings.json文件, 細(xì)心的博友可能發(fā)現(xiàn)了后面還有個(gè)get_EnvironmentName, 這個(gè)就是獲取當(dāng)前環(huán)境變量, 加載不同的appsettings.json文件, 其實(shí)在項(xiàng)目新建好之后, 默認(rèn)是有appsettings.json和appsettings.Development.json兩個(gè)json文件的, 那么這樣子, .Net Core默認(rèn)就會(huì)把這個(gè)兩個(gè)json配置都進(jìn)行加載, 如果兩個(gè)json文件有兩個(gè)一樣的配置, 后面加載的會(huì)覆蓋前面加載的. 也可以理解為appsettings.json是全局配置,appsettings.Development.json是開發(fā)配置. 我們可以做個(gè)試驗(yàn)
我們新建的空MVC項(xiàng)目, 運(yùn)行默認(rèn)訪問(wèn)只會(huì)輸出一句Hello World! , 這是代碼默認(rèn)的, 如圖
現(xiàn)在我們把這個(gè)字符串配置到 json 文件中試試
打開appsettings.json, 添加一個(gè)配置, 如圖
我配置了一個(gè)新的歡迎語(yǔ), 然后去取這個(gè)值, 取值需要注入一個(gè)IConfiguration接口對(duì)象, 才能去獲取配置信息, 我們?cè)赟tartup類里面的Configure方法的參數(shù)進(jìn)行注入, 注入之后進(jìn)行取值, 修改默認(rèn)輸出的Hello World!, 代碼如圖
然后F5運(yùn)行, 可以看到網(wǎng)頁(yè)上輸出Hello .Net Core, 沒有問(wèn)題. 那么接下來(lái)我們?cè)赼ppsettings.Development.json里面配置一個(gè)相同的配置項(xiàng), 把值改一下, 如圖
然后再F5運(yùn)行項(xiàng)目, 網(wǎng)頁(yè)就輸出Hello .Net Core Development, 可見, .Net Core會(huì)根據(jù)當(dāng)前項(xiàng)目環(huán)境, 進(jìn)行加載json文件, 如果有一樣的, 會(huì)覆蓋appsettings.json里面的配置, 也可以理解為優(yōu)先級(jí)的不同, 但是他并不是優(yōu)先級(jí)的不同, 而是進(jìn)行覆蓋
我們還可以舉個(gè)例子, 從控制臺(tái)進(jìn)行參數(shù)配置, 我們進(jìn)入到項(xiàng)目目錄, 運(yùn)行 dotnet runWelcomeMsg="AAA", 然后訪問(wèn)http://localhost:5000/, 輸出的就是AAA, 所以可以說(shuō), 命令行參數(shù)優(yōu)先級(jí)是最高的
以上是“ASP.Net Core MVC中獲取配置信息”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。