干了一天的活,还有点时间,给兄弟们写点东西吧。json
你们有没有发现一个问题?那就是在.Net Core的MVC项目里面,没有.config文件了!!!同志们,没有config文件了啊,这样搞,我之后要作些灵活的配置,又不想动源代码,或者说咱们的程序已经打包了,怎么办啊?!app
呵呵呵,.Net Core给咱们提供了一个叫appsettings.json的文件给咱们这些受虐的群众,用于取代config文件,为何要这么作我不懂,也不想懂。我只要知道怎么去用它就好了。函数
可是,怎么去用呢?由于我试了一下,淡的淡的淡的,ConfigurationManager.AppSettings和ConfigurationManager.ConnectionStrings这两个东西都不能用了。刚开始纠结了一段时间,后来查了半天资料也没有什么头绪就放弃了,想着回头抽空写个程序直接读文件去,我就不信我读不出你来了!!!后来由于巧合,发现了一个方法能够很方便的读取配置文件的内容,吼吼。ui
废话我就不说了,直接说怎么搞吧!this
首先,咱们在项目下随便找个地方新建一个类库文件,我给放在MyCMS.Web项目中的Models文件夹下了,取名叫MyConfig.cs。而后,咱们在这个文件中新建一个名叫MyConfig的类,给它一些属性。效果以下:spa
而后,咱们在appsettings.json中,也给加上一些相应的配置(属性字段必须和我们前面定义的类属性保持一致),父名称也叫MyConfig,并给它的属性赋上一些值,以下:调试
好了,准备工做完成,接下来,咱们打开Startup.cs文件,添加MyCMS.Web.Models的引用,而后在ConfigureServices方法中加入一段代码:对象
在控制终端里面输入命令dotnet build MyCMS.Web,先编译一下看看是否是成功——还好,一切正常。blog
看到了吧?咱们看起来好像是闭着眼睛干了一些咱们也不知道结果是啥的事,由于service.Configure这个东西,从英文介绍上看,好像是说把配置信息注册进寄存器中了。而后,咱们怎么去读它出来呢?在哪读它呢?哈哈,在哪读?固然是在控制器里面了……由于业务操做的入口其实就是控制器,从控制器这里获得了东西后,接下来的事就能够任由你发挥了啊。io
咱们打开HomeController这个控制器,声明一个MyConfig的对象并增长一个带IOptions参数的构造函数,并在构造函数中对前面生成的MyConfig对象赋值,效果以下:
接下来你就能够拿着这个myConfig对象去任意去潇洒了——这里面其实是有一个反序列化的过程,将JSON转换成了对象,并给对象的属性赋值了。也无论了,先用着吧,回头用得多了,你和我也就知道为何要这么用了。能用就好,不是吗?
接下来咱们来看看运行效果,先打上个断点,而后用劲你浑身的力气使劲摁下F5,启动调试。下图,效果:
(PS:有的同窗可能在VS Code里面跑不起来,会报那个 未能找到类型或命名空间名“IOptions<>”(是否缺乏 using 指令或程序集引用?) 的错误,这个时候……哈哈,看到上边我加的那个没?
好了,无论三七二十一,摁下F5,好啦!!!一切正常!!!