Ошибка при внедрении сервиса в конструктор автозагрузки - PullRequest
0 голосов
/ 26 марта 2020

Я новичок в C#. Я пытаюсь перенести проект с ASP. NET Core 2.2 на 3.1. У меня есть следующее исключение:

System.InvalidOperationException: 'Невозможно разрешить службу для типа' Dionis._1.TracingOptions 'при попытке активировать' Dionis._1.Startup '.'

в этой строке CreateHostBuilder(args).Build().Run(); в program.cs.

Запуск:

public Startup(IConfiguration configuration, TracingOptions tracingOptions)
        {
            Configuration = configuration;
            _tracingOptions = tracingOptions;
        }

Работал в ASP. NET Core 2.2. Что не так? Мне нужно получить TracingOptions, потому что я использую его для services.AddTracing(_tracingOptions); в ConfigureService s методе

1 Ответ

4 голосов
/ 26 марта 2020

Использовали ли вы руководство по миграции ?

В нем говорится:

Самое значительное изменение с WebHostBuilder на HostBuilder находится в зависимости зависимости (DI). При использовании HostBuilder в конструктор Startup можно добавить только следующее:

  • IConfiguration
  • IHostEnvironment
  • IWebHostEnvironment

Вы больше не можете делать это таким образом. Вместо этого в Startup.cs попробуйте что-то вроде:

public void ConfigureServices(IServiceCollection services)
{
    // other services

    TracingOptions tracingOptions = Configuration.GetSection("YOUR_SECTION_NAME").Get<TracingOptions>());
    services.AddTracing(tracingOptions);
}
...