从.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的主要内容,如果未能解决你的问题,请参考以下文章

从 Body 迁移 .NET Core 2.2 到 3.1 集成测试始终为空

从 .NET Core 2.2 迁移到 3.1 后,EF Core 随机抓取 API 请求上的用户表

从 2.2 迁移到 3.1 的 ASP.Net Core 解决方案在发布时不会运行

如何将 .NET Core 2.2 Web API 迁移到 .NET Core 3.0?

迁移到 .NET Core 3.1 - 缺少 Newtonsoft

将 Asp.Net Core 2.2 App 迁移到 3.1 时的整数序列化 [关闭]