Миграция с .Net core 2.2 на .Net Core 3.0 - PullRequest
0 голосов
/ 08 ноября 2019

Привет. Я пытаюсь выполнить миграцию Web API с .Net core 2.2 на .net core 3.0. Я получаю предупреждение о приведенном ниже коде строк. Не могли бы вы сообщить мне, как это исправить.

 public void ConfigureServices(IServiceCollection services)

  {  
 var buildServiceProvider = services.BuildServiceProvider();
            var getService = buildServiceProvider.GetService<IOptions<ConfigurationSettings>>();
            ConfigurationSettings = getService.Value;

}

Предупреждение: вызов BuildServiceProvider из кода приложения приводит к созданию дополнительной копии создаваемых одноэлементных сервисов.

Спасибовы

1 Ответ

1 голос
/ 08 ноября 2019

Это потому, что вы создаете ServiceProvider. В идеале не следует вызывать services.BuildServiceProvider (). похоже, что вы звоните BuildServiceProvider, чтобы вы могли решить IOptions<ConfigurationSettings>. вместо разрешения в методе ConfigureServices вы можете принять IOptions<ConfigurationSettings> в качестве аргумента службы, а ASP.NET Core добавит его в вашу службу.


public class MyService : IMyService
{
    public MyService(IOtherService otherService, IOptions<ConfigurationSettings> configurationSettings)
    {
         // read config value from here.
    }
}
...