ABP vNext IOC替换原有Service实现
即 .NET IOC替换原有Service实现
背景
在使用ABP vNext时,该框架为我们实现了非常多的默认行为,以便开箱即用,但在实际使用中,我们总是需要根据自己的需求定制自己的服务,在.Net框架中,便提供了Service.ReplaceXXXX方法,我们便是以此方法,对ABP vNext原有默认实现进行替换,本次我们以替换Volo.Abp.AspNetCore.WebClientInfo.IWebClientInfoProvider的实现为例
原有实现
自己实现
第一步:实现
替换
第二步:替换
因ABP vNext默认对此Service用了瞬时生命周期,所以我们也对其申明瞬时生命周期(Services.ReplaceTransient),在ConfigureServices方法中进行服务配置
context.Services.ReplaceTransient<IWebClientInfoProvider, WebClientInfoProvider>();
以上即可,效果可查看:ABP vNext审计日志获取真实客户端IP
备注:此替换实现实为.NET框架中的IOC替换原有实现操作,在使用ABP vNext框架时,我们要清楚的认知它是基于.NET框架的,所以有些问题的解决方式不一定全靠在ABP vNext中寻求答案,所以我们需要深刻理解.NET框架,理解ABP vNext,灵活运用,才能不受困于自我认知。
ABP vNext IOC替换原有Service实现相关推荐
- ABP vNext 审计日志获取真实客户端IP
背景 在使用ABP vNext时,当需要记录审计日志时,我们按照https://docs.abp.io/zh-Hans/abp/latest/Audit-Logging配置即可开箱即用,然而在实际生产 ...
- [Abp vNext 源码分析] - 2. 模块系统的变化
一.简要说明 本篇文章主要分析 Abp vNext 当中的模块系统,从类型构造层面上来看,Abp vNext 当中不再只是单纯的通过 AbpModuleManager 来管理其他的模块,它现在则是 I ...
- [Abp vNext 源码分析] - 3. 依赖注入与拦截器
一.简要说明 ABP vNext 框架在使用依赖注入服务的时候,是直接使用的微软提供的 Microsoft.Extensions.DependencyInjection 包.这里与原来的 ABP 框架 ...
- .NET 6 之 ABP vNext 初体验
马上国庆了,dotNative 预祝大家假期愉快,Happy National Day! 本文将介绍在 .net6 平台的 asp.net core webapi 框架中,如何使用 abp vnext ...
- [Abp vNext 源码分析] - 5. DDD 的领域层支持(仓储、实体、值对象)
一.简要介绍 ABP vNext 框架本身就是围绕着 DDD 理念进行设计的,所以在 DDD 里面我们能够见到的实体.仓储.值对象.领域服务,ABP vNext 框架都为我们进行了实现,这些基础设施都 ...
- [Abp vNext 源码分析] - 1. 框架启动流程分析
一.简要说明 本篇文章主要剖析与讲解 Abp vNext 在 Web API 项目下的启动流程,让大家了解整个 Abp vNext 框架是如何运作的.总的来说 ,Abp vNext 比起 ABP 框架 ...
- ABP vNext 的实体与服务扩展技巧分享
使用 ABP vNext 有一个月左右啦,这中间最大的一个收获是:ABP vNext 的开发效率真的是非常好,只要你愿意取遵循它模块化.DDD 的设计思想.因为官方默认实现了身份.审计.权限.定时任务 ...
- 基于 abp vNext 和 .NET Core 开发博客项目 - 给项目瘦身,让它跑起来
基于 abp vNext 和 .NET Core 开发博客项目 - 给项目瘦身,让它跑起来 转载于:https://github.com/Meowv/Blog.git 本篇文章将给项目进行瘦身,删掉对 ...
- ABP Vnext 4.4:统一Ef Core的DbContext/移除EF Core Migrations项目
Abp vnext 4.4出现了一个比较重大的变更:在Startup template中移除了EF Core Migrations项目,本文翻译自community.abp.io/articl 由于本 ...
最新文章
- #ifdef #else #endif #fi #ifndef 的用法
- oracle获取当前日期的前一天,判断两个日期是否相等
- 删库了,我们一定要跑路吗?
- totolink 异地组网
- MongoDB(4)--MongoDB服务的启动
- python结束后找什么工作_python学习结束后找什么工作?
- ubuntu不会自动休眠_关机、睡眠、休眠有啥区别?微软说非特殊情况不要关机
- IntObjectHashMap和HashMap的区别?
- Linux安装和卸载JDK
- aria2使用rpc下载百度云
- 如何实现VMware下Ubuntu和Windows之间的复制粘贴?
- 装甲逆袭-玩家移动处理
- 如何将html模板资源转为vuecli项目
- linux 存储映射lun 给_LINUX系统下添加映射存储LUN(无需重启)
- 【大学生数学竞赛】公式大全(补充中)
- 1752年9月-----消失的那11天
- 曝光过度和曝光不足_过度思考,进化心理学和编程
- Linux常用命令——tftp命令
- 一些最新任意文献下载网站:免费下载各种外文科技论文书籍电子版
- python中global什么意思_python中的global关键字的使用方法
热门文章
- AngularJS的学习--$on、$emit和$broadcast的使用
- java 通过cookie判断是否登陆
- 知识点:Mysql 索引原理完全手册(1)
- php中把美国时间转为北京时间的自定义
- spring+springMvc+mybatis 调用oracle 存储过程
- 工厂模式 Factory
- raspberry pi_每日新闻摘要:新型iMac,NVIDIA的Raspberry Pi竞争对手等
- java swing列表数据加监听,【Java Swing公开课|Java监听列表项选择事件怎么用,看完这篇文章你一定就会了】- 环球网校...
- Oracle 12C CDB、PDB常用管理命令
- python字符串格式化方法 format函数的使用