前言 简单整理一下路由和终节点. 正文 路由方式主要有两种: 1.路由模板方式 2.RouteAttribute 方式 路由约束: 1.类型约束 2.范围约束 3.正则表达式 4.是否必选 5.自定义 IRootConstaint URL 生成 1.LinKGenerator 2.IUrlHelper 先搭建一个swagger: services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo {Title = &q…
前言 这里介绍一下.net core的依赖注入框架,其中其代码原理在我的另一个整理<<重新整理 1400篇>>中已经写了,故而专门整理应用这一块. 以下只是个人整理,如有问题,望请指点. 正文 为什么有这个依赖注入呢? 假设人们面临这样一个问题. 比如说一个人做飞机去北京.那么人和飞机有什么关系呢?人和北京有什么关系呢? 假设有3个主体类,一个是人一个是飞机一个是北京.他们之间到底应该怎么组织呢? 先说人和北京的关系,人要去北京,那么飞机就是一个交通工具.是的,只是一个交通工具,那…
前言 简单整理一下HttpClientFactory . 正文 这个HttpFactory 主要有下面的功能: 管理内部HttpMessageHandler 的生命周期,灵活应对资源问题和DNS刷新问题 支持命名话.类型化配置,集中管理配置,避免冲突. 灵活的出站请求管道配置,轻松管理请求生命周期 内置管道最外层和最内层日志记录器,有information 和 Trace 输出 核心对象: HttpClient HttpMessageHandler SocketsHttpHandler Dele…
前言 前文讲述了,服务和配置直接的配合,这一节写一下,当配置文件修改了,每个服务如何感知自己的配置. 正文 服务感知到自己的配置发生变化,这就牵扯出两个东西: IoptionsMonitor<out TOptions> IoptionSnapshot<out TOptions> 在作用域范围使用IoptionSnapshot,在单例中使用IoptionsMonitor . IoptionsMonitor 先来演示作用域范围的使用. 配置: { "SelfService&q…
前言 简单整理一下工作单元模式. 正文 工作单元模式有3个特性,也算是其功能: 使用同一上下文 跟踪实体的状态 保障事务一致性 工作单元模式 主要关注事务,所以重点在事务上. 在共享层的基础建设类库中加入: /// <summary> /// 工作单元接口 /// </summary> public interface IUnitOfWork : IDisposable { /// <summary> /// 保存变更 /// </summary> ///…
前言 本来想整理到<<重新整理.net core 计1400篇>>里面去,但是后来一想,整理 .net core 实践篇 是偏于实践,故而分开. 因为是重新整理,那么就从配置开始整理.以下只是个人理解,如有错误,望请指点谢谢. 正文 在我们创建好一个应用的时候,那么出现在我们视野的是一个这样的东西: public class Program { public static void Main(string[] args) { CreateHostBuilder(args).Buil…
前言 简单介绍一下文件系统. 正文 文件系统,主要是下面3个接口组成: IFileProvider IFileInfo IDirectoryContents 那么他们的实现是: physicalFileProvider 物理文件提供程序 enbeddedFileProvider 嵌入式文件提供程序 compositeFileProvider 组合文件提供程序 /// <summary>A read-only file provider abstraction.</summary>…
前言 介绍第三方依赖注入框架Autofac,看看为我们解决什么问题. 下面介绍4个点: 命名注册 属性注册 aop 注入 子容器命名 正文 为什么我们需要使用第三方框架?第三方框架为我们做了什么?第三方框架扩展了哪一个部分? 这里主要介绍一下Autofac. Autofac 主要是替换了我们ServiceProviderFactory 这个东西. public interface IServiceProviderFactory<IContainerBuilder> 我们使用的时候这样用: Ho…
前言 前面基本介绍了,官方对于asp .net core 设计配置和设计服务的框架的一些思路.看下服务和配置之间是如何联系的吧. 正文 服务: public interface ISelfService { string ShowOptionName(); } public class SelfService : ISelfService { IOptions<SelfServiceOption> _options; public SelfService(IOptions<SelfSer…
前言 前面介绍了服务与日志之间的配置,那么我们服务会遇到下面的场景会被遇到一些打log的问题. 前面我提及到我们的log,其实是在一个队列里面,而我们的请求是在并发的,多个用户同时发送请求这个时候我们的日志是错乱的. 如果有一个错误,那么我们只能过知道这个错误是哪里报错了,但是我们不知道触发的流程是什么样的,这对我们的debug不友好. 那么我们这时候就可以设置日志作用域. 正文 日志作用域适合下面的场景: 事务 因为一个事务有多个操作,那么希望这些操作能够有一个标识符,能够展示某一次事务的完整…