12 2019 档案
摘要:参考ObjectPool对象池设计原理还原一个简易的Provider模式。 存储对象的数组ObjectWrapper内元素的取、还操作通过Interlock.CompareExchange巧妙的实现,并且是线程安全的。 取操作: 。取完后将元素置为null 还操作: 如果元素为null,则赋值 设计
阅读全文
摘要:Micosoft.Extension.ObjectPool 源码架构、模式分析: 三大基本对象: 1. ObjectPool抽象类 2. ObjectPoolProvider抽象类 3. IPooledObjectPolicy接口 ObjectPool的默认实现是DefaultPool,对象池的创建
阅读全文
摘要:abp依赖注入的原理剖析 请先移步参考 "[Abp vNext 源码分析] 3. 依赖注入与拦截器" 本文此篇文章的补充和完善。 abp的依赖注入最后是通过IConventionalRegister接口的AddType方法实现的。先看下该接口: 该接口定义了三个方法,支持传入程序集、类型数组、具体类
阅读全文
摘要:相关模块 1. AbpAspNetCoreModule 2. AbpAspNetCoreMvcModule 3. AbpAspNetCoreMvcContractsModule abp通过这三个模块加载并配置了 asp.net core。,最主要的就是AbpAspNetCoreMvcModule模块
阅读全文
摘要:一、前言 参照前篇《4. abp中的asp.net core模块剖析》,首先放张图,这也是asp.net core框架上MVC模块的扩展点 二、abp的mvc对象 AbpAspNetCoreMvcOptions类 从这个类的名称来看,这个是abp框架里面的asp.net core配置mvc选项类,是
阅读全文
摘要:一个简单、基于AbpInterceptor的拦截器示例: 拦截器调用顺序,可参考打上断点调试分析: AutofacRegistration.Populate(内部调用Autofac.Extras.DynamicProxy) SimpleAsyncInterceptor.Intercept Castl
阅读全文
摘要:abp拦截器基本定义 拦截器接口定义: 默认抽象类定义: abp的拦截器实现是基于Autofac.Extras.DynamicProxy,这个包依赖两个组件:Autofac、Castle.Core(实质上是调用内部组件DynamicProxy实现动态代理)。关于此组件的资料参考 ".NET 通过 A
阅读全文