32 lines
960 B
C#
32 lines
960 B
C#
using VolPro.Core.Extensions;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using VolPro.Core.Utilities;
|
|
|
|
namespace VolPro.Core.Extensions
|
|
{
|
|
public static class ServiceProviderManagerExtension
|
|
{
|
|
private static IServiceProvider _serviceProvider;
|
|
|
|
public static void UseCache(this IServiceProvider serviceProvider)
|
|
{
|
|
_serviceProvider = serviceProvider;
|
|
}
|
|
public static object GetService(this Type serviceType, bool scope = false)
|
|
{
|
|
if (HttpContext.Current == null || scope)
|
|
{
|
|
using (IServiceScope serviceScope = _serviceProvider.CreateScope())
|
|
{
|
|
return serviceScope.ServiceProvider.GetService(serviceType);
|
|
}
|
|
}
|
|
return HttpContext.Current.RequestServices.GetRequiredService(serviceType);
|
|
}
|
|
|
|
}
|
|
}
|