首先在 Startup 的 ConfigureServices 中添加 AddLocalization 与 AddViewLocalization 以及配置 RequestLocalizationOptions (这里假设使用英文与中文): public void ConfigureServices(IServiceCollection services) { services.AddLocalization(options => options.ResourcesPath = "Reso…
asp.net core 实现支持多语言 Intro 最近有一个外国友人通过邮件联系我,想用我的活动室预约,但是还没支持多语言,基本上都是写死的中文,所以最近想支持一下更多语言,于是有了多语言方面的一些实践 国际化/本地化介绍 国际化(Globalization)和本地化(Localization)是要实现的多语言支持的基础 Globalization is the process of designing and developing applications that function fo…
注:本文隶属于<理解ASP.NET Core>系列文章,请查看置顶博客或点击此处查看全文目录 模型绑定 什么是模型绑定?简单说就是将HTTP请求参数绑定到程序方法入参上,该变量可以是简单类型,也可以是复杂类. 绑定源 所谓绑定源,是指用于模型绑定的值来源. 先举个例子: [Route("api/[controller]")] public class UserController : ControllerBase { [Route("{id}")] pu…
理解 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>基于.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>系列文章,请查看置顶博客或点击此处查看全文目录 中间件 先借用微软官方文档的一张图: 可以看到,中间件实际上是一种配置在HTTP请求管道中,用来处理请求和响应的组件.它可以: 决定是否将请求传递到管道中的下一个中间件 可以在管道中的下一个中间件处理之前和之后进行操作 此外,中间件的注册是有顺序的,书写代码时一定要注意! 中间件管道 Run 该方法为HTTP请求管道添加一个中间件,并标识该中间件为管道终点,称为终端中间件.也就是说,该中间件就是管道的…
注:本文隶属于<理解ASP.NET Core>系列文章,请查看置顶博客或点击此处查看全文目录 依赖注入 什么是依赖注入 简单说,就是将对象的创建和销毁工作交给DI容器来进行,调用方只需要接收注入的对象实例即可. 微软官方文档-DI 依赖注入有什么好处 依赖注入在.NET中,可谓是"一等公民",处处都离不开它,那么它有什么好处呢? 假设有一个日志类 FileLogger,用于将日志记录到本地文件. public class FileLogger { public void L…
注:本文隶属于<理解ASP.NET Core>系列文章,请查看置顶博客或点击此处查看全文目录 本文会涉及部分 Host 相关的源码,并会附上 github 源码地址,不过为了降低篇幅,我会删除一些不涉及的代码. 为了方便,还是建议你将源码(.net5)runtime 和 aspnetcore 下载下来,通过VS等工具阅读 请耐心阅读! Generic Host & WebHost 在.NET Core 2.x时,ASP.NET Core 默认使用的是WebHost: public cl…
注:本文隶属于<理解ASP.NET Core>系列文章,请查看置顶博客或点击此处查看全文目录 配置提供程序 在.NET中,配置是通过多种配置提供程序来提供的,包括以下几种: 文件配置提供程序 环境变量配置提供程序 命令行配置提供程序 Azure应用配置提供程序 Azure Key Vault 配置提供程序 Key-per-file配置提供程序 内存配置提供程序 应用机密(机密管理器) 自定义配置提供程序 为了方便大家后续了解配置,这里先简单提一下选项(Options),它是用于以强类型的方式对…