使用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 ...
随机推荐
- Luugu 3084 [USACO13OPEN]照片Photo
很神仙的dp...假装自己看懂了,以后回来复习复习... 设$f_{i}$表示从$1$到$i$,且$i$这个点必放的最大数量. 一个区间有两个限制条件:至少放一个,至多放一个. 因为一个区间至多要放一 ...
- Java数据结构和算法(一)概念
Java数据结构和算法(一)概念 数据结构与算法目录(https://www.cnblogs.com/binarylei/p/10115867.html) 一.逻辑结构 数据之间的相互关系称为逻辑结构 ...
- c++11日志练习
/************************************************************** 技术博客 http://www.cnblogs.com/itdef/ ...
- arm家族小检阅
- centos7 rabbitmq安装以及应用
安装单机rabbitmq 1.安装erlang cd /usr.local yum install wget yum install net-tools wget http://erlang.or ...
- Devexpress VCL Build v2013 vol 14.1.3 发布
我修,我修,修修修. New Major Features in 14.1 What's New in VCL Products 14.1 Breaking Changes To learn abou ...
- 2018.09.27 bzoj4300: 绝世好题(二进制dp)
传送门 简单dp. 根据题目的描述. 如果数列bn{b_n}bn合法. 那么有:bi−1b_{i-1}bi−1&bi!=0b_i!=0bi!=0,因此我们用f[i]f[i]f[i]表示数 ...
- python编码(七)
本文中,以'哈'来解释作示例解释所有的问题,“哈”的各种编码如下: 1. UNICODE (UTF8-16),C854:2. UTF-8,E59388:3. GBK,B9FE. 一.python中的s ...
- 201709012工作日记--Android消息机制
1. android的消息机制——Handler机制 参考:http://www.jianshu.com/p/9e4d1fab0f36. Android异步消息处理机制完全解析,带你从源码的角度理解: ...
- 理解JavaWeb项目中的路径问题——相对路径与绝对路径
背景: 在刚开始学习javaweb,使用servlet和jsp开发web项目的过程中,一直有一个问题困扰着我:servlet 和 jsp 之间相互跳转,跳转的路径应该如何书写,才能正确的访问到相应的s ...