使用VS Code开发.Net Core 2.0 MVC Web应用程序教程之三(配置文件读取)
干了一天的活,还有点时间,给兄弟们写点东西吧。
大家有没有发现一个问题?那就是在.Net Core的MVC项目里面,没有.config文件了!!!同志们,没有config文件了啊,这样搞,我以后要做些灵活的配置,又不想动源代码,或者说我们的程序已经打包了,怎么办啊?!
呵呵呵,.Net Core给我们提供了一个叫appsettings.json的文件给我们这些受虐的群众,用于取代config文件,为什么要这么做我不懂,也不想懂。我只要知道怎么去用它就行了。
但是,怎么去用呢?因为我试了一下,淡的淡的淡的,ConfigurationManager.AppSettings和ConfigurationManager.ConnectionStrings这两个东西都不能用了。刚开始纠结了一段时间,后来查了半天资料也没有什么头绪就放弃了,想着回头抽空写个程序直接读文件去,我就不信我读不出你来了!!!后来因为巧合,发现了一个方法可以很方便的读取配置文件的内容,吼吼。
废话我就不说了,直接说怎么搞吧!
首先,我们在项目下随便找个地方新建一个类库文件,我给放在MyCMS.Web项目中的Models文件夹下了,取名叫MyConfig.cs。然后,我们在这个文件中新建一个名叫MyConfig的类,给它一些属性。效果如下:

然后,我们在appsettings.json中,也给加上一些相应的配置(属性字段必须和咱们前面定义的类属性保持一致),父名称也叫MyConfig,并给它的属性赋上一些值,如下:

好了,准备工作完成,接下来,我们打开Startup.cs文件,添加MyCMS.Web.Models的引用,然后在ConfigureServices方法中加入一段代码:

在控制终端里面输入命令dotnet build MyCMS.Web,先编译一下看看是不是成功——还好,一切正常。

看到了吧?我们看起来好像是闭着眼睛干了一些我们也不知道结果是啥的事,因为service.Configure这个东西,从英文介绍上看,好像是说把配置信息注册进寄存器中了。然后,我们怎么去读它出来呢?在哪读它呢?哈哈,在哪读?当然是在控制器里面了……因为业务操作的入口其实就是控制器,从控制器这里得到了东西后,接下来的事就可以任由你发挥了啊。
我们打开HomeController这个控制器,声明一个MyConfig的对象并增加一个带IOptions参数的构造函数,并在构造函数中对前面生成的MyConfig对象赋值,效果如下:

接下来你就可以拿着这个myConfig对象去任意去潇洒了——这里面实际上是有一个反序列化的过程,将JSON转换成了对象,并给对象的属性赋值了。也不管了,先用着吧,回头用得多了,你和我也就知道为什么要这么用了。能用就好,不是吗?

接下来我们来看看运行效果,先打上个断点,然后用劲你浑身的力气使劲摁下F5,启动调试。下图,效果:

(PS:有的同学可能在VS Code里面跑不起来,会报那个 未能找到类型或命名空间名“IOptions<>”(是否缺少 using 指令或程序集引用?) 的错误,这个时候……哈哈,看到上边我加的那个没?


好了,不管三七二十一,摁下F5,好啦!!!一切正常!!!
使用VS Code开发.Net Core 2.0 MVC Web应用程序教程之三(配置文件读取)的更多相关文章
- 使用VS Code开发.Net Core 2.0 MVC Web应用程序教程之一
好吧,现在我们假设你已经安装好了VS Code开发工具..Net Core 2.0预览版的SDK dotnet-sdk-2.0.0(注意自己的操作系统),并且已经为VS Code安装好了C#扩展(在V ...
- 使用VS Code开发.Net Core 2.0 MVC Web应用程序教程之二
好了,废话也不多说,咱们直接来看看这款MVC的造型——你可能会大吼:“这……这特么的都是些什么鬼?” 靠,告诉你吧,我也不知道这都是些什么鬼,反正以前我是没有见过这样的MVC.咦,老纸的config文 ...
- 使用VS Code 开发.NET Core 应用程序 部署到Linux 跨平台
使用VS Code 开发.NET Core 应用程序 部署到Linux 跨平台. 前面讲解了VSCode开发调试 .NET Core.都只是在windows下运行. .NET Core真正的核心是跨平 ...
- 部署到Linux使用VS Code 开发.NET Core 应用程序
使用VS Code 开发.NET Core 应用程序 部署到Linux 跨平台 使用VS Code 开发.NET Core 应用程序 部署到Linux 跨平台. 前面讲解了VSCode开发调试 .NE ...
- ASP.NET Core 2.0 MVC项目实战
一.前言 毕业后入职现在的公司快有一个月了,公司主要的产品用的是C/S架构,再加上自己现在还在学习维护很老的delphi项目,还是有很多不情愿的.之前实习时主要是做.NET的B/S架构的项目,主要还是 ...
- ASP.NET CORE 1.0 MVC API 文档用 SWASHBUCKLE SWAGGER实现
from:https://damienbod.com/2015/12/13/asp-net-5-mvc-6-api-documentation-using-swagger/ 代码生成工具: https ...
- .net core 2.0 mvc 获取配置信息
mvc_core_config *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 ...
- asp.net core 3.0 MVC JSON 全局配置
asp.net core 3.0 MVC JSON 全局配置 System.Text.Json(default) startup配置代码如下: using System.Text.Encodings. ...
- asp.net core 3.0获取web应用的根目录
目录 1.需求 2.解决方案 1.需求 asp.net core 3.0的web项目中,在controller中,想要获取wwwroot下的imgs/banners文件夹下的所有文件: 在传统的asp ...
随机推荐
- 20172325 2017-2018-2 《Java程序设计》第九周学习总结
20172325 2017-2018-2 <Java程序设计>第九周学习总结 教材学习内容总结 异常 1.学习了异常的基本概念: 2.区分异常与错误: 一个异常是指一个定义非正常情况或错误 ...
- UDP接收数据
http://blog.csdn.net/xingzheouc/article/details/49946191 http://blog.csdn.net/robertkun/article/deta ...
- win10如何安装和创建 证书
.下载winsdksetup.exe .在 MMC 管理单元中查看证书 打开一个命令提示符窗口. 类型mmc然后按 ENTER 键. 请注意,若要查看本地计算机存储中的证书,您必须具有管理员角色. 上 ...
- asp.net状态保持
1.首先如果不是asp.net webform而只是一个纯粹的html页面和ashx一般处理程序的话,因为http协议的无状态,每一次的页面请求都会重新实例化一个页面对象(注意实例化页面对象其实是通过 ...
- Django-组件
https://www.cnblogs.com/yuanchenqi/articles/8034442.html
- 命令行生成war包
1.找到自己的代码位置 2.进入cmd界面 3.进入对应的目录 4.执行命令 5.就会开始自动打包 6.在文件夹下生成对应的war包
- Nios ii调试问题集
如果定义了一个类的.hpp,而在相应的.cpp中定义其中的函数时,根本找不到定义的类,这说明类在定义时出错,要注意类括号后的冒号. 2. 问题1:NiosII/Eclipse 中遇到“Launchin ...
- Python Sleep休眠函数
#!/usr/bin/env python import os import time def fun(name): write_name="command %s failed!\n&quo ...
- nexus 私服跑一跑流程
尝试建立新项目上传,分享 D:\dev\workspace\helloworld>tree /F 卷 DATAPART 的文件夹 PATH 列表 卷序列号为 2C22-0A1A D:. │ po ...
- oracl中的大数据类型clob
建表 create table test_name( test_id number(6) not null, img_data clob ); 在java中该表所对应的po为: class Tes ...