«IHostingEnvironment» устарел - PullRequest
       19

«IHostingEnvironment» устарел

2 голосов
/ 10 апреля 2019

Я обновил свой проект до .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()) {
    ...

Как правильно сделать это сейчас? Есть ли документация / пример, чтобы показать это?

Ответы [ 2 ]

3 голосов
/ 10 апреля 2019

Кажется, IHostingEnvironment был заменен на IHostEnvironment (и несколько других).Вы должны быть в состоянии изменить тип интерфейса в вашем коде, и все будет работать так, как раньше: -)

Более подробную информацию об изменениях можно найти по этой ссылке на GitHub https://github.com/aspnet/AspNetCore/issues/7749

3 голосов
/ 10 апреля 2019

Когда 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

Новые типы:

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...