即 .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实现相关推荐

  1. ABP vNext 审计日志获取真实客户端IP

    背景 在使用ABP vNext时,当需要记录审计日志时,我们按照https://docs.abp.io/zh-Hans/abp/latest/Audit-Logging配置即可开箱即用,然而在实际生产 ...

  2. [Abp vNext 源码分析] - 2. 模块系统的变化

    一.简要说明 本篇文章主要分析 Abp vNext 当中的模块系统,从类型构造层面上来看,Abp vNext 当中不再只是单纯的通过 AbpModuleManager 来管理其他的模块,它现在则是 I ...

  3. [Abp vNext 源码分析] - 3. 依赖注入与拦截器

    一.简要说明 ABP vNext 框架在使用依赖注入服务的时候,是直接使用的微软提供的 Microsoft.Extensions.DependencyInjection 包.这里与原来的 ABP 框架 ...

  4. .NET 6 之 ABP vNext 初体验

    马上国庆了,dotNative 预祝大家假期愉快,Happy National Day! 本文将介绍在 .net6 平台的 asp.net core webapi 框架中,如何使用 abp vnext ...

  5. [Abp vNext 源码分析] - 5. DDD 的领域层支持(仓储、实体、值对象)

    一.简要介绍 ABP vNext 框架本身就是围绕着 DDD 理念进行设计的,所以在 DDD 里面我们能够见到的实体.仓储.值对象.领域服务,ABP vNext 框架都为我们进行了实现,这些基础设施都 ...

  6. [Abp vNext 源码分析] - 1. 框架启动流程分析

    一.简要说明 本篇文章主要剖析与讲解 Abp vNext 在 Web API 项目下的启动流程,让大家了解整个 Abp vNext 框架是如何运作的.总的来说 ,Abp vNext 比起 ABP 框架 ...

  7. ABP vNext 的实体与服务扩展技巧分享

    使用 ABP vNext 有一个月左右啦,这中间最大的一个收获是:ABP vNext 的开发效率真的是非常好,只要你愿意取遵循它模块化.DDD 的设计思想.因为官方默认实现了身份.审计.权限.定时任务 ...

  8. 基于 abp vNext 和 .NET Core 开发博客项目 - 给项目瘦身,让它跑起来

    基于 abp vNext 和 .NET Core 开发博客项目 - 给项目瘦身,让它跑起来 转载于:https://github.com/Meowv/Blog.git 本篇文章将给项目进行瘦身,删掉对 ...

  9. ABP Vnext 4.4:统一Ef Core的DbContext/移除EF Core Migrations项目

    Abp vnext 4.4出现了一个比较重大的变更:在Startup template中移除了EF Core Migrations项目,本文翻译自community.abp.io/articl 由于本 ...

最新文章

  1. #ifdef #else #endif #fi #ifndef 的用法
  2. oracle获取当前日期的前一天,判断两个日期是否相等
  3. 删库了,我们一定要跑路吗?
  4. totolink 异地组网
  5. MongoDB(4)--MongoDB服务的启动
  6. python结束后找什么工作_python学习结束后找什么工作?
  7. ubuntu不会自动休眠_关机、睡眠、休眠有啥区别?微软说非特殊情况不要关机
  8. IntObjectHashMap和HashMap的区别?
  9. Linux安装和卸载JDK
  10. aria2使用rpc下载百度云
  11. 如何实现VMware下Ubuntu和Windows之间的复制粘贴?
  12. 装甲逆袭-玩家移动处理
  13. 如何将html模板资源转为vuecli项目
  14. linux 存储映射lun 给_LINUX系统下添加映射存储LUN(无需重启)
  15. 【大学生数学竞赛】公式大全(补充中)
  16. 1752年9月-----消失的那11天
  17. 曝光过度和曝光不足_过度思考,进化心理学和编程
  18. Linux常用命令——tftp命令
  19. 一些最新任意文献下载网站:免费下载各种外文科技论文书籍电子版
  20. python中global什么意思_python中的global关键字的使用方法

热门文章

  1. AngularJS的学习--$on、$emit和$broadcast的使用
  2. java 通过cookie判断是否登陆
  3. 知识点:Mysql 索引原理完全手册(1)
  4. php中把美国时间转为北京时间的自定义
  5. spring+springMvc+mybatis 调用oracle 存储过程
  6. 工厂模式 Factory
  7. raspberry pi_每日新闻摘要:新型iMac,NVIDIA的Raspberry Pi竞争对手等
  8. java swing列表数据加监听,【Java Swing公开课|Java监听列表项选择事件怎么用,看完这篇文章你一定就会了】- 环球网校...
  9. Oracle 12C CDB、PDB常用管理命令
  10. python字符串格式化方法 format函数的使用