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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从.Net core 2.2迁移到.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会导致创建单例服务的其他副本。

谢谢

答案

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

以上是关于从.Net core 2.2迁移到.Net Core 3.0的主要内容,如果未能解决你的问题,请参考以下文章