ASP.NETCore6中无法从根提供程序解析作用域服务
创始人
2024-09-17 16:31:16
0

在 ASP.NET Core 6 中,将服务添加到依赖注入容器时,使用 AddScoped() 方法来注册作用域服务。如果尝试从根提供程序(即应用程序的顶层容器)中解析作用域服务,则会出现“Cannot resolve scoped service from root provider”的错误。

为了解决这个问题,可以使用IServiceScopeFactory创建一个新的作用域,然后从这个新的作用域中解析服务。

以下是一个示例:

public class MyService
{
   // constructor and other methods

   public void DoSomething()
   {
      // Get a new scope
      using (var scope = _serviceScopeFactory.CreateScope())
      {
         // Resolve the scoped service from the new scope
         var scopedService = scope.ServiceProvider.GetRequiredService();

         // Use the scoped service
         scopedService.DoSomethingScoped();
      } 
   }
}

public class Startup
{
   public void ConfigureServices(IServiceCollection services)
   {
      // Register the scoped service using AddScoped()
      services.AddScoped();

      // Add other services
   }
}

在这个例子中,MyService 类注入了一个 IServiceScopeFactory 服务,并在 DoSomething() 方法中使用它来创建一个新的作用域。然后,它从这个新的作用域中解析一个作用域服务,并使用它执行操作。

请注意,在 ConfigureServices() 方法中,作用域服务使用 AddScoped() 方法进行注册。这是因为只有命名实例才能在根提供程序中解析,而作用域服务只能在作用域中解析。确保您将服务注册到适当的生存期,以避免“Cannot resolve scoped service from root provider”的错误。

相关内容

热门资讯

让我来分享经验“wpk有那种辅... 让我来分享经验“wpk有那种辅助吗”开挂(透视)辅助脚本(插件教程有挂秘诀);无需打开直接搜索微信(...
开挂辅助!烧饼修改器,wepo... 开挂辅助!烧饼修改器,wepoker怎么下载游戏(透视)开挂辅助脚本(有挂方式);烧饼修改器是一种具...
分享认知“wepoker有辅助... 分享认知“wepoker有辅助工具吗”开挂(透视)辅助安装(可靠技巧有挂透视);无需打开直接搜索薇:...
辅助开挂!牵手跑辅助,aapo... 辅助开挂!牵手跑辅助,aapoker如何设置胜率(透视)开挂辅助插件(有挂解密);牵手跑辅助软件透视...
重大通报“来玩app破解”开挂... 重大通报“来玩app破解”开挂(透视)辅助神器(大神讲解有挂方法);无需打开直接搜索加(薇:1367...
开挂辅助!上游辅助器,xpok... 开挂辅助!上游辅助器,xpoker辅助(透视)开挂辅助脚本(有挂头条);上游辅助器是一项上游辅助器软...
辅助开挂!老友记辅助器,wer... 辅助开挂!老友记辅助器,werplan有挂吗(透视)开挂辅助软件(真是有挂);老友记辅助器是一项老友...
今日百科“wepoker代打辅... 今日百科“wepoker代打辅助机器人”开挂(透视)辅助插件(可靠教程了解有挂) 了解更多开挂安装加...
开挂辅助!边锋斗地主插件辅助脚... 开挂辅助!边锋斗地主插件辅助脚本,德普软件(透视)开挂辅助神器(有挂细节);1、不需要AI权限,帮助...
大家学习交流“wepoker辅... wepoker辅助器 无需打开直接搜索微信:136704302本司针对手游进行,选择我们的四大理由:...