使用VS Code开发.Net Core 2.0 MVC Web应用程序教程之三(配置文件读取)
干了一天的活,還有點(diǎn)時(shí)間,給兄弟們寫點(diǎn)東西吧。
大家有沒有發(fā)現(xiàn)一個(gè)問題?那就是在.Net Core的MVC項(xiàng)目里面,沒有.config文件了!!!同志們,沒有config文件了啊,這樣搞,我以后要做些靈活的配置,又不想動(dòng)源代碼,或者說(shuō)我們的程序已經(jīng)打包了,怎么辦啊?!
?
呵呵呵,.Net Core給我們提供了一個(gè)叫appsettings.json的文件給我們這些受虐的群眾,用于取代config文件,為什么要這么做我不懂,也不想懂。我只要知道怎么去用它就行了。
?
但是,怎么去用呢?因?yàn)槲以嚵艘幌?#xff0c;淡的淡的淡的,ConfigurationManager.AppSettings和ConfigurationManager.ConnectionStrings這兩個(gè)東西都不能用了。剛開始糾結(jié)了一段時(shí)間,后來(lái)查了半天資料也沒有什么頭緒就放棄了,想著回頭抽空寫個(gè)程序直接讀文件去,我就不信我讀不出你來(lái)了!!!后來(lái)因?yàn)榍珊?#xff0c;發(fā)現(xiàn)了一個(gè)方法可以很方便的讀取配置文件的內(nèi)容,吼吼。
廢話我就不說(shuō)了,直接說(shuō)怎么搞吧!
首先,我們?cè)陧?xiàng)目下隨便找個(gè)地方新建一個(gè)類庫(kù)文件,我給放在MyCMS.Web項(xiàng)目中的Models文件夾下了,取名叫MyConfig.cs。然后,我們?cè)谶@個(gè)文件中新建一個(gè)名叫MyConfig的類,給它一些屬性。效果如下:
?
然后,我們?cè)?span style="color:#ff0000;">appsettings.json中,也給加上一些相應(yīng)的配置(屬性字段必須和咱們前面定義的類屬性保持一致),父名稱也叫MyConfig,并給它的屬性賦上一些值,如下:
?
好了,準(zhǔn)備工作完成,接下來(lái),我們打開Startup.cs文件,添加MyCMS.Web.Models的引用,然后在ConfigureServices方法中加入一段代碼:
services.Configure<MyConfig>(this.Configuration.GetSection("MyConfig")); 效果如下:?
在控制終端里面輸入命令dotnet build MyCMS.Web,先編譯一下看看是不是成功——還好,一切正常。
?
?
?
看到了吧?我們看起來(lái)好像是閉著眼睛干了一些我們也不知道結(jié)果是啥的事,因?yàn)閟ervice.Configure這個(gè)東西,從英文介紹上看,好像是說(shuō)把配置信息注冊(cè)進(jìn)寄存器中了。然后,我們?cè)趺慈プx它出來(lái)呢?在哪讀它呢?哈哈,在哪讀?當(dāng)然是在控制器里面了……因?yàn)闃I(yè)務(wù)操作的入口其實(shí)就是控制器,從控制器這里得到了東西后,接下來(lái)的事就可以任由你發(fā)揮了啊。
?
我們打開HomeController這個(gè)控制器,聲明一個(gè)MyConfig的對(duì)象并增加一個(gè)帶IOptions參數(shù)的構(gòu)造函數(shù),并在構(gòu)造函數(shù)中對(duì)前面生成的MyConfig對(duì)象賦值,效果如下:
?
?接下來(lái)你就可以拿著這個(gè)myConfig對(duì)象去任意去瀟灑了——這里面實(shí)際上是有一個(gè)反序列化的過程,將JSON轉(zhuǎn)換成了對(duì)象,并給對(duì)象的屬性賦值了。也不管了,先用著吧,回頭用得多了,你和我也就知道為什么要這么用了。能用就好,不是嗎?
?
?
接下來(lái)我們來(lái)看看運(yùn)行效果,先打上個(gè)斷點(diǎn),然后用勁你渾身的力氣使勁摁下F5,啟動(dòng)調(diào)試。下圖,效果:
??
(PS:有的同學(xué)可能在VS Code里面跑不起來(lái),會(huì)報(bào)那個(gè) ?未能找到類型或命名空間名“IOptions<>”(是否缺少 using 指令或程序集引用?)? 的錯(cuò)誤,這個(gè)時(shí)候……哈哈,看到上邊我加的那個(gè)沒?
using Microsoft.Extensions.Options; 如果還不行,那我也不知道怎么辦了,但是你如果換成Visual studio2017來(lái)重新創(chuàng)建項(xiàng)目來(lái)弄一遍的話,肯定就跑起來(lái)了,不會(huì)有問題。) 另外,有的同學(xué)摁下F5后,可能會(huì)提示說(shuō)“preLaunchTask“build”已終止,退出代碼為 1” ,這特么又是什么鬼?我的辦法是——?jiǎng)h掉已經(jīng)生成的task.json,然后摁下組合鍵Ctrl+Shift+P,會(huì)出現(xiàn)下邊這么個(gè)東西,選擇第一個(gè)“配置任務(wù)運(yùn)行程序”,接著,又會(huì)出來(lái)另外一個(gè)東西(這過程不可描述,反正就是出來(lái)了),選擇“.NET Core”,然后它又會(huì)給你自動(dòng)生成一個(gè)task.json文件。如下面連接三圖:?
?
好了,不管三七二十一,摁下F5,好啦!!!一切正常!!!
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/paluano/p/7607926.html
總結(jié)
以上是生活随笔為你收集整理的使用VS Code开发.Net Core 2.0 MVC Web应用程序教程之三(配置文件读取)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c++重载(以运算符重载为主)
- 下一篇: oracle根据一张表更新另外一张表