"IHostingEnvironment" устарел
Я обновил свой проект до .NETCORE v3.0.0-preview3 и теперь я получаю:
Startup.cs(75,50,75,69): предупреждение CS0618: "IHostingEnvironment" устарело: "Этот тип устарел и будет удален в следующей версии. Рекомендуемая альтернатива - Microsoft.AspNetCore.Hosting.IWebHostEnvironment. '
Код является:
public void Configure(IApplicationBuilder app, IHostingEnvironment env) {
if (env.IsDevelopment()) {
...
Как правильно сделать это сейчас? Есть ли документация/пример, чтобы показать это?
Ответы
Ответ 1
Кажется, IHostingEnvironment
был заменен на IHostEnvironment
(и несколько других).
Вы должны быть в состоянии изменить тип интерфейса в вашем коде, и все будет работать так, как раньше :-)
Вы можете найти больше информации об изменениях по этой ссылке на GitHub
https://github.com/aspnet/AspNetCore/issues/7749
РЕДАКТИРОВАТЬ
Существует также дополнительный интерфейс IWebHostEnvironment
, который можно использовать в приложениях ASP.NET Core. Это доступно в пространстве имен Microsoft.AspNetCore.Hosting
.
Ответ 2
Когда Microsoft.Extensions.Hosting
был введен в 2.1, некоторые типы, такие как IHostingEnvironment
и IApplicationLifetime
были скопированы из Microsoft.AspNetCore.Hosting
. Некоторые изменения в версии 3.0 приводят к тому, что приложения включают в себя пространства имен Microsoft.Extensions.Hosting
и Microsoft.AspNetCore.Hosting
. Любое использование этих дублирующих типов вызывает ошибку компилятора с "неоднозначной ссылкой", когда на оба пространства имен ссылаются.
Эта ошибка была устранена в 3.0.0-preview3, пометив следующие типы как устаревшие и заменив их новыми. В новых типах не было никаких изменений в поведении, кроме имен.
Устаревшие типы (предупреждение):
Microsoft.Extensions.Hosting.IHostingEnvironment
Microsoft.AspNetCore.Hosting.IHostingEnvironment
Microsoft.Extensions.Hosting.IApplicationLifetime
Microsoft.AspNetCore.Hosting.IApplicationLifetime
Microsoft.Extensions.Hosting.EnvironmentName
Microsoft.AspNetCore.Hosting.EnvironmentName
New types:
Microsoft.Extensions.Hosting.IHostEnvironment
Microsoft.AspNetCore.Hosting.IWebHostEnvironment : IHostEnvironment
Microsoft.Extensions.Hosting.IHostApplicationLifetime
Microsoft.Extensions.Hosting.Environments
Обратите внимание, что новые методы расширения IHostEnvironment IsDevelopment, IsProduction и т.д. находятся в пространстве имен Microsoft.Extensions.Hosting, которое может потребоваться добавить в ваше приложение.
В версии 3.0 оба старых и новых типа будут доступны из контейнеров внедрения зависимостей HostBulder и WebHostBuilder. Старые типы будут удалены в 4.0.
Источник: https://github.com/aspnet/AspNetCore/issues/7749
Короче говоря, вы ищете IWebHostEnvironment
сейчас. Скорее всего, вам также понадобится добавить использование для Microsoft.Extensions.Hosting
.