2017-11-27 5 views

답변

2

강력한 입력 설정을 직접 입력하는 대신 IOptionsSnapshot<T>을 입력해야합니다. 여기서 T은 설정 클래스입니다. 이로 인해 구성이 다시로드 될 때 값이 업데이트됩니다. 당신은 양자 택일 직접 IOptionsSnapshot을 사용하기 위해 의존성 주입을 설정할 수 있습니다

public class MyController : Controller 
{ 
    private readonly IOptionsSnapshot<MySettings> _settings; 

    public MyController(IOptionsSnapshot<MySettings> settings) 
    { 
     _settings = settings; 
    } 

    ... 
} 

: 예를 들어

services.Configure<MySettings>(Configuration.GetSection("MySettings")); 
services.AddScoped(cfg => cfg.GetService<IOptionsSnapshot<MySettings>>().Value); 

그런 다음, 당신은 단지 이전과 당신의 컨트롤러에 MySettings를 주입을 계속할 수 있습니다.

참고 : IOptionsSnapshot은 ASP.NET Core 1.1 이상에서 사용할 수 있습니다. 이전 버전에서는 설정을 다시로드 할 수 없습니다.