IOC 컨테이너 3

A, 옵션 주입 모드

(appsettings.json 상당 모델 필드에 따라 데이터 클래스를 매핑하고 생성자를 사용하여 주입)

강력한 형식의 옵션

옵션 POCO 설정에 액세스하고 구성하기위한 프레임 워크입니다.

간략하게, 옵션은  함으로써, POCO 구성 클래스 Startup용기 클래스로 등록에 POCO 개체 얻을 생성자 주입 이후의 사용을 사용하는 경우. 우리는 옵션 모드라고이 프로그래밍 모델을 호출합니다.

먼저 정의  옵션 :

공개  수업 중인 MyOptions 
{ 
    공공  문자열 의 DefaultValue { GET ; 설정 ; } 
}

그런 다음 우리는 해당이 appsettings.json다음 조각을 추가 :

{
   " 중인 MyOptions " : {
     " 의 DefaultValue " : " 첫째 " 
  } 
}

에서 방법, 등록 서비스 :StartupConfigureServices

공개  공극 ConfigureServices (IServiceCollection 서비스)   
{ 
    services.Configure <중인 MyOptions> (Configuration.GetSection ( " 중인 MyOptions " )); 
}

마지막으로, 이들은 PLC에 주입 IOptions<MyOptions>그 통해 Value속성 MyOptions액세스 :

[도로 ( " API / [제어부] " )]
 공용  클래스 ValuesController : 컨트롤러   
{ 
    전용  판독 전용 중인 MyOptions의 _options;
    공개 ValuesController (iOptions에 <중인 MyOptions> 옵션) 
    { 
        _options = options.Value; 
    } 

    [HttpGet] 
    공공  문자열 가져 오기는 () 
    { 
        반환 _options.DefaultValue을; 
    } 
}

 

둘째, 구성 방법

옵션 프레임 워크의 시스템을 우리에게 제공하는 IServiceCollection우리의 사용을 용이하게하기 위해 확장 방법.

액션 구성 사용

// 가장 쉬운 방법 레지스터에 
services.Configure <중인 MyOptions> (= O> = o.DefaultValue true로 ); 

// 지정된 특정 이름의 
services.Configure <중인 MyOptions> ( " 내을 " = O> = o.DefaultValue true로 ); 

// 모든 인스턴스 
services.ConfigureAll <중인 MyOptions> (= O> = o.DefaultValue true로 );

구성 파일을 통해 구성

// 사용을 인스턴스 등록 구성 파일 
services.Configure <중인 MyOptions> (Configuration.GetSection ( " 로그인 " )); 

// 지정된 특정 이름의 
services.Configure <중인 MyOptions> ( " " , Configuration.GetSection ( " 로그인 " )) ; 

// 모든 인스턴스 
services.ConfigureAll <중인 MyOptions> (Configuration.GetSection는 ( " 가입 " ));

PostConfigure 방법

PostConfigure 상기 방법에  Configure 있어서 실행 한 결과, 2.0 새롭게 추가된다.

services.PostConfigure <중인 MyOptions> (O => o.DefaultValue = ); 
services.PostConfigure <중인 MyOptions> ( " smyign " , O => o.DefaultValue = ); 
services.PostConfigureAll <중인 MyOptions> (O => o.DefaultValue =  );

 

 

ConfigureNamedOptions

추천

출처www.cnblogs.com/fger/p/12170301.html