사용자 컨테이너에 의한 유형 가져 오기 asp.net 핵심 DI 컨테이너

1. 정의 기, 조합 주입 Iprovider 의해 수득하고자

1 개  공용  클래스 AppDependencyResolver
 2-      {
 3          개인  정적 AppDependencyResolver의 _resolver;
4  
5          공공  정적 AppDependencyResolver 현재
 6          {
 7              GET 
8              {
 9                  경우 (_resolver == null이 )
 10                      던질  새로운 예외 ( " 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          공중 T의 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