[asp.net-core] ConfigureServices 메서드에서 IHostingEnvironment 액세스

ConfigureServices현재 호스팅 환경 이름이 ‘개발’인지 확인해야합니다 .

그래서 IHostingEnvironment.IsDevelopment()방법을 사용 하는 것은 나에게 괜찮을 수 있지만 Configure 방법과 달리 IHostingEnvironment env.



답변

IHostingEnvironment를 유지하려면 Startup 클래스에 속성을 만듭니다. 이미 액세스 권한이있는 Startup 생성자에서 속성을 설정 한 다음 ConfigureServices에서 속성에 액세스 할 수 있습니다.


답변

이 질문 과 중복 된 것으로 표시된 질문에서 여기로 복사 하여 삭제했습니다 . 배우대한 크레딧 .

액세스하려는 경우 IHostingEnvironmentConfigureServices사용하면 생성자를 통해 주입과에서 나중에 액세스를 위해 보관해야합니다 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
}


답변

IHostingEnvironment Core 3.1에서 더 이상 사용되지 않습니다.

        private readonly IWebHostEnvironment _env;

        public Startup(IConfiguration configuration, IWebHostEnvironment env)
        {
            _env = env;
            Configuration = configuration;
        }

트릭을해야합니다 …

그런 다음 어디에서나 참조하십시오 _env.IsDevelopment().


답변