mirror of https://github.com/abpframework/abp.git
4 changed files with 27 additions and 21 deletions
@ -1,12 +1,14 @@ |
|||||
namespace Volo.Abp.DependencyInjection; |
using System; |
||||
|
|
||||
|
namespace Volo.Abp.DependencyInjection; |
||||
|
|
||||
/// <summary>
|
/// <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
|
/// Be careful to use the root service provider since there is no way
|
||||
/// to release/dispose objects resolved from the root service provider.
|
/// to release/dispose objects resolved from the root service provider.
|
||||
/// So, always create a new scope if you need to resolve any service.
|
/// So, always create a new scope if you need to resolve any service.
|
||||
/// </summary>
|
/// </summary>
|
||||
public interface IRootServiceProviderAccessor : IServiceProviderAccessor |
public interface IRootServiceProvider : IServiceProvider |
||||
{ |
{ |
||||
|
|
||||
} |
} |
||||
@ -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); |
||||
|
} |
||||
|
} |
||||
@ -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; |
|
||||
} |
|
||||
} |
|
||||
Loading…
Reference in new issue