来,全都是干货. 我们都知道在Framework版本的mvc项目中,配置数据是通过web.config里的appSettings节点配置,我们不得不写一些读取配置文件字符串的类,比如保存在静态的变量中. 而在mvc core中,这种不优雅的读取字符串的方式得到了进化,以json数据写入和读取的方式很优雅,省了很多代码,这个思想有点现在流行的对象存储. 来,上代码: 这是一个appsettings.json文件,也就是mvc core的配置文件,注意Administrator节点,它配置了网站管理…
这是ASP.NET Core新核心对象系列的第二篇,上一篇 WebHost准备阶段 我们讲到了WebHostBuilder的初始化及配置.我们给WebHostBuilder进行以下配置 UseKestrel 设置Kestrel为HttpServer ConfigureAppConfiguration 设置了配置文件 ConfigureLogging 配置了日志处理器,添加了 Debug和控制台两种方式 UseStartup 指定了Startup类 有了一个WebHostBuilder之后,我们就…
读取配置文件 asp.net core使用appsettings.json代替传统.net framework的web.config中的<appSettings>节点.它的数据格式变成了json字符串,便于我们操作和维护. 不管是.net framework还是.net core,在将应用程序发布到生产环境时,所需要的各种配置或多或少都不一样,比如数据库连接字符串,或者redis连接地址,或者接口地址等等.难道我们每次都要在发布后,再次手动更新配置文件吗?明显不可行,那么针对这种问题,我们怎么…
asp.net core 里如何记录日志呢? 这要从asp.net core的依赖注入说起,在asp.net core里的依赖注入真是无所不在,各种面向切面的接口与事件. 好吧,来点干货. 首先,我们希望有这样一种调用方式(或者说asp.net core集成的日志功能只能用这种方式): 在asp.net core里,框架内的很多功能都是依赖注入,不需要new XXX(),只需要在对象的构造函数里注入就好啦. 上图的ILogger<LogController> logger,就是asp.net…
前烟: .NET Core 中取消了以往的 XML 节点配置文件,改用了 *.json 格式. 在 Startup.cs 文件中,构造方法 build appsetting.json 文件, 本文主要对解析配置文件的官方工具类做总结: 一.appsettings.json 文件 在新建的 Core Web 项目中,默认会有一个全局的配置变量:IConfigurationRoot 提供了索引器.GetSection 方法: { "Host": "http://localhost…
在ASP.NET Core 中,应用程序配置数据可以使用JSON, XML 和 INI格式 和内置环境变量,命令行参数或内存中的集合. 1.如何获取和设置配置 ASP.NET Core配置系统针对以前的依赖于System.Configuration和XML配置文件(如Web.config)的ASP,NET 版本进行了重构.新的配置模型提供了精简高效的,能够通过检索多样化提供程序来获取基于键/值对配置的能力.应用程序和框架可以通过新的选择模式访问配置. 可以在ASP.NET Core应用程序中的S…
本文翻译自<Four ways to dispose IDisposables in ASP.NET Core>,由于水平有限,故无法保证翻译完全正确,欢迎指出错误.谢谢! IDisposable 接口是.NET中最常用的接口之一.当类型包含非托管资源的引用,比如窗口句柄.文件或网络通信,可以实现IDisposable接口.垃圾收集器自动释放托管(即.NET)对象的内存,但不知道如何处理非托管资源.通过实现IDisposable接口,您可以在类被释放时正确地清理这些资源. 这篇文章介绍了在AS…
身份认证几乎是每个项目都要集成的功能,在面向接口(Microservice)的系统中,我们需要有跨平台,多终端支持等特性的认证机制,基于token的认证方式无疑是最好的方案.今天我们就来介绍下在.Net Core版本中如何做一个自己的身份认证系统. 首先,本篇文章介绍的方式是基于Policy. 我们希望有一个这样的方式来给Controller或Action添加身份认证,将它灵活的添加到我们需要的地方: 请注意高亮的那行代码,我们希望有这样一个Filter,加上它就为这个Action添加了身份认证…
以本系列文章向Fish 前辈的那篇我心中的ASP.NET 核心对象致敬.(虽然不知道前辈现在在干什么).一晃就6年过去了,那首 郝云 的<回到那一天>怎么唱来着? 时光一晃,你就三十了. 而我们都变成了老了的程序员…
这篇文章介绍的是一个黑魔法. 我们知道,在我们项目开发中,对Response需要定制化的数据结构,比如需要一个字段 Status 用来表示响应的状态码:字段Message 用来表示请求的消息,字段Data表示数据. 简单的讲,就是所有的响应都按照我们想要的数据结构来,统一的响应有助于我们项目的顺利进展,因为这涉及前后端工程师的配合,代码的统一又给了工程师简单.直接的编程思想. 比如,我们的Action可能会这样写: 高亮部分是我们真正的业务代码,像这样的Action会很多,几乎所有Action都…