1
디 컨테이너의 설정 값을 유지하고 관리 페이지를 통해 설정을 변경할 수 있지만 서비스 컬렉션에 새 설정 값을 다시 추가하면 나에게 오래된 설정 값을 제공합니다. .net 코어에서 컨테이너 값/서비스를 업데이트하는 방법.나중에 작업을 수행 할 때 asp.net 코어 디 컨테이너를 업데이트하는 방법
디 컨테이너의 설정 값을 유지하고 관리 페이지를 통해 설정을 변경할 수 있지만 서비스 컬렉션에 새 설정 값을 다시 추가하면 나에게 오래된 설정 값을 제공합니다. .net 코어에서 컨테이너 값/서비스를 업데이트하는 방법.나중에 작업을 수행 할 때 asp.net 코어 디 컨테이너를 업데이트하는 방법
강력한 입력 설정을 직접 입력하는 대신 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 이상에서 사용할 수 있습니다. 이전 버전에서는 설정을 다시로드 할 수 없습니다.