C# 从.Net core 2.2迁移到.Net core 3.0
您好,我正在尝试将Web API从.Net core 2.2迁移到.Net core 3.0。我收到以下代码行的警告。你能告诉我怎么解决这个问题吗C# 从.Net core 2.2迁移到.Net core 3.0,c#,asp.net-core,asp.net-core-mvc,asp.net-core-webapi,asp.net-core-3.0,C#,Asp.net Core,Asp.net Core Mvc,Asp.net Core Webapi,Asp.net Core 3.0,您好,我正在尝试将Web API从.Net core 2.2迁移到.Net core 3.0。我收到以下代码行的警告。你能告诉我怎么解决这个问题吗 public void ConfigureServices(IServiceCollection services) { var buildServiceProvider = services.BuildServiceProvider(); var getService = buildServiceProvide
public void ConfigureServices(IServiceCollection services)
{
var buildServiceProvider = services.BuildServiceProvider();
var getService = buildServiceProvider.GetService<IOptions<ConfigurationSettings>>();
ConfigurationSettings = getService.Value;
}
public void配置服务(IServiceCollection服务)
{
var buildServiceProvider=services.buildServiceProvider();
var getService=buildServiceProvider.getService();
ConfigurationSettings=getService.Value;
}
警告:从应用程序代码调用BuildServiceProvider会导致创建更多的单例服务副本
谢谢这是因为您正在创建ServiceProvider。理想情况下,您不应该调用services.BuildServiceProvider()。看起来您正在调用
BuildServiceProvider
,以便可以解析IOptions
。您可以接受IOptions
作为服务的参数,而不是在ConfigureServices
方法中进行解析,ASP.NET Core将把它注入到您的服务中
公共类MyService:IMyService
{
公共MyService(IOtherService其他服务、IOPS配置设置)
{
//从这里读取配置值。
}
}
包含有关调用services.Configure()
以在Startup.cs
中绑定配置映射的信息会很有用。