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>
|
|||
/// 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 |
|||
{ |
|||
|
|||
} |
|||
@ -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