diff --git a/framework/src/Volo.Abp.Mapperly/Volo/Abp/Mapperly/AbpMapperlyModule.cs b/framework/src/Volo.Abp.Mapperly/Volo/Abp/Mapperly/AbpMapperlyModule.cs index 60381163eb..f879354ed3 100644 --- a/framework/src/Volo.Abp.Mapperly/Volo/Abp/Mapperly/AbpMapperlyModule.cs +++ b/framework/src/Volo.Abp.Mapperly/Volo/Abp/Mapperly/AbpMapperlyModule.cs @@ -1,4 +1,6 @@ -using Microsoft.Extensions.DependencyInjection; +using System; +using System.Linq; +using Microsoft.Extensions.DependencyInjection; using Volo.Abp.Auditing; using Volo.Abp.Modularity; using Volo.Abp.ObjectExtending; @@ -20,6 +22,23 @@ public class AbpMapperlyModule : AbpModule public override void ConfigureServices(ServiceConfigurationContext context) { - context.Services.AddMapperlyObjectMapper(); + // This is the temporary solution, We will remove it in when all apps are migrated to Mapperly. + var disableMapperlyAutoObjectMappingProvider = false; + + var modules = context.Services.GetSingletonInstance().Modules.ToList(); + var autoMapperModuleIndex = modules.FindIndex(x => x.Type.FullName!.Equals("Volo.Abp.AutoMapper.AbpAutoMapperModule", StringComparison.OrdinalIgnoreCase)); + if (autoMapperModuleIndex >= 0) + { + var mapperlyModuleIndex = modules.FindIndex(x => x.Type == typeof(AbpMapperlyModule)); + if (mapperlyModuleIndex > autoMapperModuleIndex) + { + disableMapperlyAutoObjectMappingProvider = true; + } + } + + if (!disableMapperlyAutoObjectMappingProvider) + { + context.Services.AddMapperlyObjectMapper(); + } } }