From b3bdcd80b83a77b4cd7b8977fd02b31ca798694e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Thu, 11 Aug 2022 17:37:29 +0300 Subject: [PATCH] Change IRootServiceProviderAccessor as IRootServiceProvider --- .../IRootServiceProviderAccessor.cs | 8 +++++--- .../RootServiceProvider.cs | 19 +++++++++++++++++++ .../RootServiceProviderAccessor.cs | 14 -------------- .../Abp/AbpApplication_Initialize_Tests.cs | 7 +++---- 4 files changed, 27 insertions(+), 21 deletions(-) create mode 100644 framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/RootServiceProvider.cs delete mode 100644 framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/RootServiceProviderAccessor.cs diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/IRootServiceProviderAccessor.cs b/framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/IRootServiceProviderAccessor.cs index cb22e45287..8a3c1d09a5 100644 --- a/framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/IRootServiceProviderAccessor.cs +++ b/framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/IRootServiceProviderAccessor.cs @@ -1,12 +1,14 @@ -namespace Volo.Abp.DependencyInjection; +using System; + +namespace Volo.Abp.DependencyInjection; /// -/// Gets the root service provider of the application. +/// The root service provider of the application. /// Be careful to use the root service provider since there is no way /// to release/dispose objects resolved from the root service provider. /// So, always create a new scope if you need to resolve any service. /// -public interface IRootServiceProviderAccessor : IServiceProviderAccessor +public interface IRootServiceProvider : IServiceProvider { } \ No newline at end of file diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/RootServiceProvider.cs b/framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/RootServiceProvider.cs new file mode 100644 index 0000000000..cbb6fb8984 --- /dev/null +++ b/framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/RootServiceProvider.cs @@ -0,0 +1,19 @@ +using System; + +namespace Volo.Abp.DependencyInjection; + +[ExposeServices(typeof(IRootServiceProvider))] +public class RootServiceProvider : IRootServiceProvider, ISingletonDependency +{ + protected IServiceProvider ServiceProvider { get; } + + public RootServiceProvider(IObjectAccessor objectAccessor) + { + ServiceProvider = objectAccessor.Value; + } + + public virtual object GetService(Type serviceType) + { + return ServiceProvider.GetService(serviceType); + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/RootServiceProviderAccessor.cs b/framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/RootServiceProviderAccessor.cs deleted file mode 100644 index 1f0639be12..0000000000 --- a/framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/RootServiceProviderAccessor.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; - -namespace Volo.Abp.DependencyInjection; - -[ExposeServices(typeof(IRootServiceProviderAccessor))] -public class RootServiceProviderAccessor : IRootServiceProviderAccessor, ISingletonDependency -{ - public IServiceProvider ServiceProvider { get; } - - public RootServiceProviderAccessor(IObjectAccessor objectAccessor) - { - ServiceProvider = objectAccessor.Value; - } -} \ No newline at end of file diff --git a/framework/test/Volo.Abp.Core.Tests/Volo/Abp/AbpApplication_Initialize_Tests.cs b/framework/test/Volo.Abp.Core.Tests/Volo/Abp/AbpApplication_Initialize_Tests.cs index f51cb8d573..60f5028caa 100644 --- a/framework/test/Volo.Abp.Core.Tests/Volo/Abp/AbpApplication_Initialize_Tests.cs +++ b/framework/test/Volo.Abp.Core.Tests/Volo/Abp/AbpApplication_Initialize_Tests.cs @@ -165,12 +165,11 @@ public class AbpApplication_Initialize_Tests using (var application = await AbpApplicationFactory.CreateAsync()) { await application.InitializeAsync(); - + application .ServiceProvider - .GetRequiredService() - .ServiceProvider - .ShouldBeSameAs(application.ServiceProvider); + .GetRequiredService() + .ShouldNotBeNull(); } } }