Разница между IServiceScope.ServiceProvider.GetService () (.NET Core) и ILifetimeScope.ResolveOptional () (Autofac) - PullRequest
0 голосов
/ 10 февраля 2019

Я видел пример кода, который извлекает службу из контекста через Autofac следующим образом:

services.AddSingleton<ITest, Test>(sp =>
{
            var iLifetimeScope = sp.GetRequiredService<ILifetimeScope>();
            using (var scope = iLifetimeScope.BeginLifetimeScope("AUTOFAC_SCOPE_NAME"))
            {
                var handler = scope.ResolveOptional(test.HandlerType) as ITestHandler;
            }
});

Мне было интересно, есть ли какая-либо разница, если сделать это таким образом с помощью инструментов .NET Core DependencyInjection?

services.AddSingleton<ITest, Test>(sp =>
{
            using (var scope = sp.CreateScope())
            {
                var handler = scope.ServiceProvider.GetService(test.HandlerType) as ITestHandler;
            }
});

Эти два пути эквивалентны?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...