diff --git a/framework/src/Volo.Abp.Core/Microsoft/Extensions/DependencyInjection/ServiceCollectionCommonExtensions.cs b/framework/src/Volo.Abp.Core/Microsoft/Extensions/DependencyInjection/ServiceCollectionCommonExtensions.cs index 1b2d2c46524..cc2195c6b54 100644 --- a/framework/src/Volo.Abp.Core/Microsoft/Extensions/DependencyInjection/ServiceCollectionCommonExtensions.cs +++ b/framework/src/Volo.Abp.Core/Microsoft/Extensions/DependencyInjection/ServiceCollectionCommonExtensions.cs @@ -42,13 +42,9 @@ public static IServiceProvider BuildServiceProviderFromFactory([NotNull] this IS foreach (var service in services) { - var factoryInterface = service.ImplementationInstance?.GetType() - .GetTypeInfo() - .GetInterfaces() - .FirstOrDefault(i => i.GetTypeInfo().IsGenericType && - i.GetGenericTypeDefinition() == typeof(IServiceProviderFactory<>)); - - if (factoryInterface == null) + var factoryInterface = service.ServiceType; + if (factoryInterface == null || !factoryInterface.IsGenericType || + factoryInterface.GetTypeInfo().GetGenericTypeDefinition() != typeof(IServiceProviderFactory<>)) { continue; }