从.Net Core 2.2迁移到.Net Core 3.0

时间:2019-11-08 05:01:03

标签: c# asp.net-core asp.net-core-mvc asp.net-core-webapi asp.net-core-3.0

嗨,我正在尝试将Web API从.Net核心2.2迁移到.net核心3.0我收到以下行代码的警告。您能否让我知道如何解决此问题。

 public void ConfigureServices(IServiceCollection services)

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

}
  

警告:从应用程序代码调用BuildServiceProvider会导致创建单例服务的其他副本。

谢谢

1 个答案:

答案 0 :(得分:1)

这是因为您正在创建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.
    }
}