注:本文隶属于<理解ASP.NET Core>系列文章,请查看置顶博客或点击此处查看全文目录 依赖注入 什么是依赖注入 简单说,就是将对象的创建和销毁工作交给DI容器来进行,调用方只需要接收注入的对象实例即可. 微软官方文档-DI 依赖注入有什么好处 依赖注入在.NET中,可谓是"一等公民",处处都离不开它,那么它有什么好处呢? 假设有一个日志类 FileLogger,用于将日志记录到本地文件. public class FileLogger { public void L…
ASP.NET Core使用了大量的DI(Dependency Injection)设计,有用过Autofac或类似的DI Framework对此应该不陌生.本篇将介绍ASP.NET Core的依赖注入. DI运作方式 ASP.NET Core的DI是采用Constructor Injection,也就是说会把实例化的物件从建构子传入.例如: 12345678910 public class HomeController : Controller{ private readonly ISampl…
<理解ASP.NET Core>基于.NET5进行整理,旨在帮助大家能够对ASP.NET Core框架有一个清晰的认识. 目录 [01] Startup [02] Middleware [03] Dependency Injection [04] Host [05] Options [06] Routing [07] File Server [08] Multiple Environments [09] Logging 未完待续...…
注:本文隶属于<理解ASP.NET Core>系列文章,请查看置顶博客或点击此处查看全文目录 本文会涉及部分 Host 相关的源码,并会附上 github 源码地址,不过为了降低篇幅,我会删除一些不涉及的代码. 为了方便,还是建议你将源码(.net5)runtime 和 aspnetcore 下载下来,通过VS等工具阅读 请耐心阅读! Generic Host & WebHost 在.NET Core 2.x时,ASP.NET Core 默认使用的是WebHost: public cl…
系列教程 Spring 框架介绍 Spring 框架模块 Spring开发环境搭建(Eclipse) 创建一个简单的Spring应用 Spring 控制反转容器(Inversion of Control – IOC) 理解依赖注入(DI – Dependency Injection) Bean XML 配置(1)- 通过XML配置加载Bean Bean XML 配置(2)- Bean作用域与生命周期回调方法配置 Bean XML 配置(3)- 依赖注入配置 Bean XML 配置(4)- 自动装…
理解 ASP.NET Core 处理管道 在 ASP.NET Core 的管道处理部分,实现思想已经不是传统的面向对象模式,而是切换到了函数式编程模式.这导致代码的逻辑大大简化,但是,对于熟悉面向对象编程,而不是函数式编程思路的开发者来说,是一个比较大的挑战. 处理请求的函数 在 ASP.NET Core 中,一次请求的完整表示是通过一个 HttpContext 对象来完成的,通过其 Request 属性可以获取当前请求的全部信息,通过 Response 可以获取对响应内容进行设置. 对于一次请…
注:本文隶属于<理解ASP.NET Core>系列文章,请查看置顶博客或点击此处查看全文目录 准备工作:一份ASP.NET Core Web API应用程序 当我们来到一个陌生的环境,第一件事就是找到厕所在哪. 当我们接触一份新框架时,第一件事就是找到程序入口,即Main方法 public class Program { public static void Main(string[] args) { CreateHostBuilder(args).Build().Run(); } publi…
注:本文隶属于<理解ASP.NET Core>系列文章,请查看置顶博客或点击此处查看全文目录 中间件 先借用微软官方文档的一张图: 可以看到,中间件实际上是一种配置在HTTP请求管道中,用来处理请求和响应的组件.它可以: 决定是否将请求传递到管道中的下一个中间件 可以在管道中的下一个中间件处理之前和之后进行操作 此外,中间件的注册是有顺序的,书写代码时一定要注意! 中间件管道 Run 该方法为HTTP请求管道添加一个中间件,并标识该中间件为管道终点,称为终端中间件.也就是说,该中间件就是管道的…
注:本文隶属于<理解ASP.NET Core>系列文章,请查看置顶博客或点击此处查看全文目录 配置提供程序 在.NET中,配置是通过多种配置提供程序来提供的,包括以下几种: 文件配置提供程序 环境变量配置提供程序 命令行配置提供程序 Azure应用配置提供程序 Azure Key Vault 配置提供程序 Key-per-file配置提供程序 内存配置提供程序 应用机密(机密管理器) 自定义配置提供程序 为了方便大家后续了解配置,这里先简单提一下选项(Options),它是用于以强类型的方式对…
注:本文隶属于<理解ASP.NET Core>系列文章,请查看置顶博客或点击此处查看全文目录 Options绑定 上期我们已经聊过了配置(IConfiguration),今天我们来聊一聊Options,中文译为"选项",该功能用于实现以强类型的方式对程序配置信息进行访问. 既然是强类型的方式,那么就需要定义一个Options类,该类: 推荐命名规则:{Object}Options 特点: 非抽象类 必须包含公共无参的构造函数 类中的所有公共读写属性都会与配置项进行绑定 字段…