使用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,好啦!!!一切正常!!!

相关文章
相关标签/搜索