ConfigureServices
현재 호스팅 환경 이름이 '개발'인지 확인해야합니다 .
그래서 IHostingEnvironment.IsDevelopment()
방법을 사용 하는 것은 나에게 괜찮을 수 있지만 Configure 방법과 달리 IHostingEnvironment env
.
답변:
IHostingEnvironment를 유지하려면 Startup 클래스에 속성을 만듭니다. 이미 액세스 권한이있는 Startup 생성자에서 속성을 설정 한 다음 ConfigureServices에서 속성에 액세스 할 수 있습니다.
ConfigureServices
불가능합니까?
ConfigureServices
하기 위해 프레임 워크가 해당 특정 메서드에 대한 종속성 주입을 다른 영역에서 수행하는 방식으로 지원하지 않기 때문에 불가능합니다 (이 메서드를 사용하여 종속성 주입을 구성하기 때문일 수 있음). Joe가 설명한대로 생성자 수준에서 설정하면 문제가 해결됩니다.
이 질문 과 중복 된 것으로 표시된 질문에서 여기로 복사 하여 삭제했습니다 . 배우 에 대한 크레딧 .
액세스하려는 경우 IHostingEnvironment
에 ConfigureServices
사용하면 생성자를 통해 주입과에서 나중에 액세스를 위해 보관해야합니다 ConfigureServices
:
public class Startup
{
public Startup(IConfiguration configuration, IHostingEnvironment environment)
{
Configuration = configuration;
Environment = environment;
}
public IConfiguration Configuration { get; }
public IHostingEnvironment Environment { get; }
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
System.Console.WriteLine($"app: {Environment.ApplicationName}");
}
// rest omitted
}
environment
소문자가 소문자 인 반면 속성은 Environment
.
IHostingEnvironment
단지 구식 이라고 말해야하지 .Net Core 3.0
않습니까? (I는 '테이크 홈 시험'이 통화 중이 야 services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
내부 ConfigureServices()
. 방법 IHostingEnvironment이 잘 작동됩니다