Мне нужно проверить ConfigureServices
метод, является ли текущее имя среды хостинга «Разработка».
Поэтому использование IHostingEnvironment.IsDevelopment()
метода может быть для меня приемлемым, но, в отличие от метода Configure, у меня его нет IHostingEnvironment env
.
asp.net-core
Устанавливать
источник
источник
ConfigureServices
нем нельзя?ConfigureServices
, это невозможно, потому что фреймворк не поддерживает внедрение зависимостей для этого конкретного метода, как это происходит в других областях (вероятно, потому, что вы используете этот метод для настройки внедрения зависимостей). Настройка на уровне конструктора, как описал Джо, должна помочь обойти проблему.Скопировано сюда из вопроса, помеченного как дубликат этого и удаленного . Кредит a-ctor .
Если вы хотите получить доступ
IHostingEnvironment
вConfigureServices
вас будет вводить его с помощью конструктора и сохранить его для последующего доступа вConfigureServices
:источник
environment
строчные буквы, а свойство вроде быEnvironment
.IHostingEnvironment
это устарело только с.Net Core 3.0
? (Я работаю над «домашним тестом», который вызываетservices.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
внутриConfigureServices()
метода, и IHostingEnvironment работает нормально.IHostingEnvironment
устарело в Core 3.1должен сделать свое дело ...
Затем ссылка где угодно с и
_env.IsDevelopment()
т.д ...источник