Types Get asp.net core DI container by custom containers

1. custom containers, intended to obtain by combination injection Iprovider

 1 public class AppDependencyResolver
 2     {
 3         private static AppDependencyResolver _resolver;
 4 
 5         public static AppDependencyResolver Current
 6         {
 7             get
 8             {
 9                 if (_resolver == null)
10                     throw new Exception("AppDependencyResolver not initialized. You should initialize it in Startup class");
11                 return _resolver;
12             }
13         }
14 
15         public static void Init(IServiceProvider services)
16         {
17             _resolver = new AppDependencyResolver(services);
18         }
19 
20         private readonly IServiceProvider _serviceProvider;
21 
22         public object GetService(Type serviceType)
23         {
24             return _serviceProvider.GetService(serviceType);
25         }
26 
27         public T GetService<T>()
28          {
 29              return _serviceProvider.GetService <T> ();
30          }
 31  
32          private AppDependencyResolver (IServiceProvider service provider)
 33          {
 34              _serviceProvider = service provider;
35          }
 36      }

2.startup initialization container, where the provider is autofac

1 AppDependencyResolver.Init(provider);

 

3. Call

1  private ILogger<CustomAutofacAop> _logger;
2         public CustomAutofacAop()
3         {
4             _logger = AppDependencyResolver.Current.GetService<ILogger<CustomAutofacAop>>();
5 
6         }

 

 

Guess you like

Origin www.cnblogs.com/Spinoza/p/11874463.html