ABP vNext IOC替换原有Service实现

  • Post author:
  • Post category:其他




即 .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,灵活运用,才能不受困于自我认知。