干了一天的活,还有点时间,给兄弟们写点东西吧。

大家有没有发现一个问题?那就是在.Net Core的MVC项目里面,没有.config文件了!!!同志们,没有config文件了啊,这样搞,我以后要做些灵活的配置,又不想动源代码,或者说我们的程序已经打包了,怎么办啊?!

呵呵呵,.Net Core给我们提供了一个叫appsettings.json的文件给我们这些受虐的群众,用于取代config文件,为什么要这么做我不懂,也不想懂。我只要知道怎么去用它就行了。

但是,怎么去用呢?因为我试了一下,淡的淡的淡的,ConfigurationManager.AppSettingsConfigurationManager.ConnectionStrings这两个东西都不能用了。刚开始纠结了一段时间,后来查了半天资料也没有什么头绪就放弃了,想着回头抽空写个程序直接读文件去,我就不信我读不出你来了!!!后来因为巧合,发现了一个方法可以很方便的读取配置文件的内容,吼吼。

废话我就不说了,直接说怎么搞吧!

首先,我们在项目下随便找个地方新建一个类库文件,我给放在MyCMS.Web项目中的Models文件夹下了,取名叫MyConfig.cs。然后,我们在这个文件中新建一个名叫MyConfig的类,给它一些属性。效果如下:

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

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

services.Configure<MyConfig>(this.Configuration.GetSection("MyConfig"));
效果如下:

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

看到了吧?我们看起来好像是闭着眼睛干了一些我们也不知道结果是啥的事,因为service.Configure这个东西,从英文介绍上看,好像是说把配置信息注册进寄存器中了。然后,我们怎么去读它出来呢?在哪读它呢?哈哈,在哪读?当然是在控制器里面了……因为业务操作的入口其实就是控制器,从控制器这里得到了东西后,接下来的事就可以任由你发挥了啊。

我们打开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,好啦!!!一切正常!!!

转载于:https://www.cnblogs.com/paluano/p/7607926.html

使用VS Code开发.Net Core 2.0 MVC Web应用程序教程之三(配置文件读取)相关推荐

  1. 使用VS Code开发.Net Core 2.0 MVC Web应用程序教程之一

    好吧,现在我们假设你已经安装好了VS Code开发工具..Net Core 2.0预览版的SDK dotnet-sdk-2.0.0(注意自己的操作系统),并且已经为VS Code安装好了C#扩展(在V ...

  2. ASP.NET Core 2.0 MVC项目实战

     一.前言 毕业后入职现在的公司快有一个月了,公司主要的产品用的是C/S架构,再加上自己现在还在学习维护很老的delphi项目,还是有很多不情愿的.之前实习时主要是做.NET的B/S架构的项目,主要还 ...

  3. 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 ...

  4. Asp.Net Core 6.0 Mvc入门 图书查询系统 附带源码下载

    Asp.Net Core 6.0 MVC 入门 简介 目标 第一章 创建Asp.Net Core Web应用 第二章 从Model开始 第三章 Model之后皆基架 第四章 运行应用 第五章 数据搜索 ...

  5. ASP .NET Core Web MVC系列教程:使用ASP .NET Core创建MVC Web应用程序

    本系列教程翻译自微软官方教程,官方教程地址:Get started with ASP.NET Core MVC | Microsoft Docs 本系列教程介绍了构建MVC Web应用程序的基础知识. ...

  6. 【实验手册】使用Visual Studio Code 开发.NET Core应用程序

    .NET Core with Visual Studio Code 目录 概述... 2 先决条件... 2 练习1: 安装和配置.NET Core以及Visual Studio Code 扩展... ...

  7. 使用Visual Studio Code 开发.NET Core应用程序

    开源和跨平台开发是Microsoft 的当前和将来至关重要的策略..NET Core已开源,同时开发了其他项来使用和支持新的跨平台策略..NET Core2.0 目前已经发布,是适用于针对 Web 和 ...

  8. .NET Core快速入门教程 4、使用VS Code开发.NET Core控制台应用程序

    一.前言 为什么选择VS Code? VS Code 是一款跨平台的代码编辑器,想想他的哥哥VS,并是微软出品的宇宙第一IDE, 那作为VS的弟弟,VS Code 也不会差,毕竟微软出品.反正ken是 ...

  9. 使用VS Code 开发.NET Core 应用程序 部署到Linux 跨平台

    前面讲解了VSCode开发调试 .NET Core.都只是在windows下运行. .NET Core真正的核心是跨平台,我们现在来了解学习 .NET Core 跨平台. 在windows 下开发.N ...

最新文章

  1. 双料状元收割神器来了!清华设立计算机金融双学士学位
  2. 使用Comet4j实现消息推送
  3. flex air openWithDefaultApplication 时出现Illegal ...
  4. windows 服务部署管理
  5. OpenCV修养(一)——引入
  6. selenium-行为链-ActionChains-0223
  7. 7-2 最大流 加强版 (20 分)
  8. 信息系统集成企业该具备的资质您有几个呢?
  9. JSON Editor Online
  10. 计算机论文中期报告进展情况,自动化毕业论文中期报告进展情况怎么写
  11. JAVA基础之Http协议
  12. 臀部肌群锻炼方法大全
  13. 软件测试自学怎么学?
  14. 企业微信微信社群运营该怎么做?
  15. DICOM医学影像协议
  16. 微信小程序如何将数据存储到服务器,微信小程序关于数据存储的一些坑
  17. MYSQL中AS(取别名)
  18. 电脑开不了机怎么办?如何解决?
  19. 树莓派家用NAS解决方案
  20. Android渲染优化之卡顿检测、统计fps

热门文章

  1. NHibernate初学体验记
  2. 栈和队列在python中的实现
  3. python 64位程序 打包用于32位系统_python分别打包出32位和64位应用程序
  4. 打印出两个set中差集_Java之两个Set集合的交集、差集和并集
  5. eclipse关闭mysql数据库,有关于用eclipse连接mysql数据库出现的问题以及解决办法
  6. class转java_[拒绝套路,纯干货]这一百多道 Java 基础问题你掌握了吗?
  7. java显示链表在jtable上输出_jtable的使用精华
  8. 计算机与plc链接通信协议,实现上位计算机与PLC的上位链接系统的通信设计
  9. 机器学习中的聚类算法(2):Mean Shift算法
  10. 小R SLAM机器人树莓派3b+ ROS kinetic 环境搭建笔记