Ответ 1
просто создайте свойство класса Startup для сохранения IHostingEnvironment. Задайте свойство в конструкторе Startup, в котором у вас уже есть доступ, затем вы можете получить доступ к свойству из ConfigureServices
Мне нужно проверить метод ConfigureServices
, является ли текущее имя хостинга "Development".
Так что использование метода IHostingEnvironment.IsDevelopment()
может быть для меня хорошо, но в отличие от метода Configure у меня нет IHostingEnvironment env
.
просто создайте свойство класса Startup для сохранения IHostingEnvironment. Задайте свойство в конструкторе Startup, в котором у вас уже есть доступ, затем вы можете получить доступ к свойству из ConfigureServices
Скопировано здесь из вопроса, помеченного как дубликат этого, и удалено. Кредит a-ctor.
Если вы хотите получить доступ к 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
}