Browse Source

Change IRootServiceProviderAccessor as IRootServiceProvider

pull/13644/head
Halil İbrahim Kalkan 4 years ago
parent
commit
b3bdcd80b8
  1. 8
      framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/IRootServiceProviderAccessor.cs
  2. 19
      framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/RootServiceProvider.cs
  3. 14
      framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/RootServiceProviderAccessor.cs
  4. 7
      framework/test/Volo.Abp.Core.Tests/Volo/Abp/AbpApplication_Initialize_Tests.cs

8
framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/IRootServiceProviderAccessor.cs

@ -1,12 +1,14 @@
namespace Volo.Abp.DependencyInjection;
using System;
namespace Volo.Abp.DependencyInjection;
/// <summary>
/// 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.
/// </summary>
public interface IRootServiceProviderAccessor : IServiceProviderAccessor
public interface IRootServiceProvider : IServiceProvider
{
}

19
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<IServiceProvider> objectAccessor)
{
ServiceProvider = objectAccessor.Value;
}
public virtual object GetService(Type serviceType)
{
return ServiceProvider.GetService(serviceType);
}
}

14
framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/RootServiceProviderAccessor.cs

@ -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<IServiceProvider> objectAccessor)
{
ServiceProvider = objectAccessor.Value;
}
}

7
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<IndependentEmptyModule>())
{
await application.InitializeAsync();
application
.ServiceProvider
.GetRequiredService<IRootServiceProviderAccessor>()
.ServiceProvider
.ShouldBeSameAs(application.ServiceProvider);
.GetRequiredService<IRootServiceProvider>()
.ShouldNotBeNull();
}
}
}

Loading…
Cancel
Save