嗨,我正在尝试将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会导致创建单例服务的其他副本。
谢谢
答案 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.
}
}