从托管服务中调用 IServiceProvider.CreateScope 是一种反模式吗?

问题描述

最近我一直在研究 following StackOverflow 问题。

那里有一个答案,建议阅读 Microsoft 的 documentation,尤其是段落后台任务中使用范围服务

页面中,我们有以下代码的一部分:

internal class ConsumeScopedServiceHostedService : IHostedService
{
    ...
    private void DoWork()
    {
        _logger.Loginformation(
            "Consume Scoped Service Hosted Service is working.");

        using (var scope = Services.CreateScope())
        {
            var scopedProcessingService = 
                scope.ServiceProvider
                    .GetrequiredService<IScopedProcessingService>();

            scopedProcessingService.DoWork();
        }
    }
    ...    
}

这不是一种反模式吗?在方法中创建作用域并从服务提供者处解析服务?这似乎有一种服务定位器(如果我错了,请纠正我)。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...