使用VS Code開發.Net Core 2.0 MVC Web應用程序教程之三(配置文件讀取)

幹了一天的活,還有點時間,給兄弟們寫點東西吧。json

你們有沒有發現一個問題?那就是在.Net Core的MVC項目裏面,沒有.config文件了!!!同志們,沒有config文件了啊,這樣搞,我之後要作些靈活的配置,又不想動源代碼,或者說咱們的程序已經打包了,怎麼辦啊?!app

 

呵呵呵,.Net Core給咱們提供了一個叫appsettings.json的文件給咱們這些受虐的羣衆,用於取代config文件,爲何要這麼作我不懂,也不想懂。我只要知道怎麼去用它就好了。函數

 

可是,怎麼去用呢?由於我試了一下,淡的淡的淡的,ConfigurationManager.AppSettingsConfigurationManager.ConnectionStrings這兩個東西都不能用了。剛開始糾結了一段時間,後來查了半天資料也沒有什麼頭緒就放棄了,想着回頭抽空寫個程序直接讀文件去,我就不信我讀不出你來了!!!後來由於巧合,發現了一個方法能夠很方便的讀取配置文件的內容,吼吼。ui


廢話我就不說了,直接說怎麼搞吧!this

首先,咱們在項目下隨便找個地方新建一個類庫文件,我給放在MyCMS.Web項目中的Models文件夾下了,取名叫MyConfig.cs。而後,咱們在這個文件中新建一個名叫MyConfig的類,給它一些屬性。效果以下:spa

 

而後,咱們在appsettings.json中,也給加上一些相應的配置(屬性字段必須和我們前面定義的類屬性保持一致),父名稱也叫MyConfig,並給它的屬性賦上一些值,以下:調試

 

好了,準備工做完成,接下來,咱們打開Startup.cs文件,添加MyCMS.Web.Models的引用,而後在ConfigureServices方法中加入一段代碼:對象

services.Configure<MyConfig>(this.Configuration.GetSection("MyConfig"));
 
效果以下:
 

 

在控制終端裏面輸入命令dotnet build MyCMS.Web,先編譯一下看看是否是成功——還好,一切正常。blog

 

 

 

看到了吧?咱們看起來好像是閉着眼睛幹了一些咱們也不知道結果是啥的事,由於service.Configure這個東西,從英文介紹上看,好像是說把配置信息註冊進寄存器中了。而後,咱們怎麼去讀它出來呢?在哪讀它呢?哈哈,在哪讀?固然是在控制器裏面了……由於業務操做的入口其實就是控制器,從控制器這裏獲得了東西后,接下來的事就能夠任由你發揮了啊。io

 

咱們打開HomeController這個控制器,聲明一個MyConfig的對象並增長一個帶IOptions參數的構造函數,並在構造函數中對前面生成的MyConfig對象賦值,效果以下:

 

 接下來你就能夠拿着這個myConfig對象去任意去瀟灑了——這裏面其實是有一個反序列化的過程,將JSON轉換成了對象,並給對象的屬性賦值了。也無論了,先用着吧,回頭用得多了,你和我也就知道爲何要這麼用了。能用就好,不是嗎?

 

 

接下來咱們來看看運行效果,先打上個斷點,而後用勁你渾身的力氣使勁摁下F5,啓動調試。下圖,效果:

  

(PS:有的同窗可能在VS Code裏面跑不起來,會報那個  未能找到類型或命名空間名「IOptions<>」(是否缺乏 using 指令或程序集引用?)  的錯誤,這個時候……哈哈,看到上邊我加的那個沒?

using Microsoft.Extensions.Options;
 
若是還不行,那我也不知道怎麼辦了,可是你若是換成Visual studio2017來從新建立項目來弄一遍的話,確定就跑起來了,不會有問題。)
 
另外,有的同窗摁下F5後,可能會提示說「 preLaunchTask「build」已終止,退出代碼爲 1」 ,這特麼又是什麼鬼?個人辦法是——刪掉已經生成的task.json,而後摁下組合鍵 Ctrl+Shift+P,會出現下邊這麼個東西,選擇第一個「 配置任務運行程序」,接着,又會出來另一個東西(這過程不可描述,反正就是出來了),選擇 「.NET Core」,而後它又會給你自動生成一個task.json文件。以下面鏈接三圖:
 
 

 

 

好了,無論三七二十一,摁下F5,好啦!!!一切正常!!!

相關文章
相關標籤/搜索