diff --git a/framework/src/Volo.Abp.Core/Microsoft/Extensions/DependencyInjection/ServiceCollectionConfigurationExtensions.cs b/framework/src/Volo.Abp.Core/Microsoft/Extensions/DependencyInjection/ServiceCollectionConfigurationExtensions.cs index 940e7f6965..97a6ed4189 100644 --- a/framework/src/Volo.Abp.Core/Microsoft/Extensions/DependencyInjection/ServiceCollectionConfigurationExtensions.cs +++ b/framework/src/Volo.Abp.Core/Microsoft/Extensions/DependencyInjection/ServiceCollectionConfigurationExtensions.cs @@ -1,11 +1,14 @@ -using Microsoft.Extensions.Configuration; +using System; +using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection.Extensions; +using Microsoft.Extensions.Hosting; using Volo.Abp.Configuration; namespace Microsoft.Extensions.DependencyInjection { public static class ServiceCollectionConfigurationExtensions { + [Obsolete] public static IServiceCollection SetConfiguration(this IServiceCollection services, IConfigurationRoot configurationRoot) { return services.Replace(ServiceDescriptor.Singleton(new DefaultConfigurationAccessor(configurationRoot))); @@ -13,6 +16,12 @@ namespace Microsoft.Extensions.DependencyInjection public static IConfigurationRoot GetConfiguration(this IServiceCollection services) { + var hostBuilderContext = services.GetSingletonInstanceOrNull(); + if (hostBuilderContext?.Configuration != null) + { + return hostBuilderContext.Configuration as IConfigurationRoot; + } + return services.GetSingletonInstance().Configuration; } }