カスタムコンテナによって種類は、Get 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(サービス種別)。
25          }
 26  
27          公衆 TのgetService <T> ()
28          {
 29              リターン _serviceProvider.GetService <T> ();
30          }
 31  
32          プライベートAppDependencyResolver(IServiceProviderサービスプロバイダ)
 33          {
 34              _serviceProvider = サービス・プロバイダ。
35          }
 36      }

プロバイダがautofacある2.startup初期化コンテナ、

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