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