Типы Get asp.net ядро DI контейнер с помощью пользовательских контейнеров

1. пользовательские контейнеры, предназначенные для получения с помощью комбинации инъекции Iprovider

1  общественный  класс AppDependencyResolver
 2      {
 3          частные  статические AppDependencyResolver _resolver;
4  
5          публичных  статический AppDependencyResolver ток
 6          {
 7              прибудет 
8              {
 9 ,                  если (_resolver == NULL )
 10                      бросок  нового Exception ( " AppDependencyResolver не инициализирован Вы должны инициализировать его в классе запуска. " );
11                  возвращение _resolver;
12              }
13          }
 14  
15          общественные  статические  недействительные (услуги) IServiceProvider Иниц
 16          {
 17              _resolver = новый AppDependencyResolver (услуги);
18          }
 19  
20          частная  только для чтения IServiceProvider _serviceProvider;
21  
22          общественного  объекта GetService (тип ServiceType)
 23          {
 24              возврата _serviceProvider.GetService (ServiceType);
25          }
 26  
27          общественных Т GetService <T> ()
28          {
 29              возврата _serviceProvider.GetService <T> ();
30          }
 31  
32          Частный AppDependencyResolver (IServiceProvider поставщик услуг)
 33          {
 34              _serviceProvider = поставщик услуг;
35          }
 36      }

2.startup инициализации контейнера, в котором провайдер autofac

1 AppDependencyResolver.Init (поставщик);

 

3. Вызов

1   частный ILogger <CustomAutofacAop> _logger;
2          общественных CustomAutofacAop ()
 3          {
 4              _logger = AppDependencyResolver.Current.GetService <ILogger <CustomAutofacAop >> ();
5  
6          }

 

 

рекомендация

отwww.cnblogs.com/Spinoza/p/11874463.html