IServiceScopeFactory против IServiceProvider, внедряющего в синглтон для вызова метода CreateScopeC#

Место общения программистов C#
Anonymous
IServiceScopeFactory против IServiceProvider, внедряющего в синглтон для вызова метода CreateScope

Сообщение Anonymous »

У меня есть два варианта доступа к CreateScope, и мне интересно, какой из них лучше для синглтона. Есть ли какая-либо разница, учитывая, что IServiceProvider.CreateScope — это метод расширения, использующий интерфейс IServiceScopeFactory? Мне нужен конкретный пример ошибки. На данный момент единственная подсказка заключается в том, что интерфейс IServiceScopeProvider, похоже, создан специально для этой цели.

Код: Выделить всё

public class SingletonFoo(IServiceProvider serviceProvider)
{
public void MethodA()
{
using var scope = serviceProvider.CreateScope();
scope.ServiceProvider.GetServices().MethodA();
}

public async Task MethodB()
{
using var scope = serviceProvider.CreateScope();
await scope.ServiceProvider.GetServices().MethodB();
}
}

public class SingletonBar(IServiceScopeFactory serviceScopeFactory)
{
public void MethodA()
{
using var scope = serviceScopeFactory.CreateScope();
scope.ServiceProvider.GetServices().MethodA();
}

public async Task MethodB()
{
using var scope = serviceScopeFactory.CreateScope();
await scope.ServiceProvider.GetServices().MethodB();
}
}
Моя мотивация: у меня есть фрагмент кода, который, кажется, работает правильно и использует интерфейс IServiceProvider, и мне интересно, стоит ли его изменить, чтобы исключить потенциальные ошибки.
Я прочитал этот вопрос и другие источники, но не смог найти ответа на свой вопрос.
>

Вернуться в «C#»