Получение ошибки: "WebHostBuilder" не содержит определения для "UseLamar"

Я вижу, что есть поддержка ASP.NET Core 3.0, но как насчет 3.1? Я пробовал безуспешно. Не уверен, что я делаю что-то глупое или это не поддерживается?

Я установил последние пакеты Nuget:

  • Ламар 4.0.0
  • Lamar.Microsoft.DependencyInjection 4.0.2

И я использую:

var builder = new WebHostBuilder();
builder.UseLamar()

Файл включает using Lamar.Microsoft.DependencyInjection; наверху.

Но появляется ошибка: "WebHostBuilder" не содержит определения для "UseLamar".

1 ответ

Решение

Руководство по интеграции с ASP.Net Core включает примечание, в котором говорится:

Если вы ориентируетесь на.Net Core 3.0 и / или netstandard2.1используйте только что консолидированный HostBuilder вместо предыдущегоIWebHostBuilder.

Буквальная замена кода, показанного в вопросе, будет выглядеть так:

var builder = new HostBuilder();
builder.UseLamar();

Однако типичный установочный код для создания компоновщика хоста с вызовом UseLamar добавлено, будет выглядеть примерно так для 3.0+:

Host.CreateDefaultBuilder(args)
    .UseLamar()
    .ConfigureWebHostDefaults(webHostBuilder =>
    {
        webHostBuilder.UseStartup<Startup>();
    });

В заметке, которую я привел выше, ссылки на документы ASP.NET Core, в которых гораздо более подробно объясняется общий хост: .NET Generic Host.

Другие вопросы по тегам