두 프로젝트 (.NET Core Web API 및 .NET Core WindowsService)에서 구성에 appsettings.json을 사용하고 있습니다. 모두 Microsoft.Extensions.Configuration의 reloadOnChange가 appsettings.json에서 작동하는 방식
var configuration = new ConfigurationBuilder()
.SetBasePath(System.IO.Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddEnvironmentVariables()
.Build();
는 I는 reloadOnChange true로 설정하고 의존성 주입
IOptions
통해 주입로 사용있다. 웹 API 내에서 컨트롤러 클래스로, 서비스 내에서 설정을 사용하는 클래스로 이동합니다.
불행히도 나는 appsettings.json이 변경 될 때 값이 변경되지 않는 것을 경험합니다.
웹 API에서 설정에서 문자열 값을 반환하는 컨트롤러를 만들었으며 시작시와 동일하게 유지됩니다.
그래서 내 질문 : 그 (적어도 웹 API에서) 상자 밖으로 작업을해야하는 경우
- 누구나 알고?
- 내가해야하는 모든 작업이 효과가 있습니까?
옵션 등록 방법은 무엇입니까? 'services.Configure (Confiugration.GetSection (...))'을 사용합니까? 또는 .Bind()를 사용합니까? –
Tseng
두 경우 모두 services.Configure (Confiugration.GetSection (. ..)) –
monty
일반적으로 위의 오버로드를 호출 할 때 변경 토큰을 통해 작동합니다 (https://github.com/aspnet/Options /blob/rel/1.1.0/src/Microsoft.Extensions.Options.ConfigurationExtensions/OptionsConfigurationServiceCollectionExtensions.cs#L35-L36) 및 https://github.com/aspnet/Options/blob/rel/1.1.0/src/ 토큰이 실행될 때 Microsoft.Extensions.Options.ConfigurationExtensions/ConfigureFromConfigurationOptions.cs가 다시 바인딩을 트리거합니다. – Tseng