Чем отличаются GetService от ApplicationServices и IServiceProvider? - PullRequest
0 голосов
/ 15 апреля 2020

Я вижу код, который разрешает его необходимую форму обслуживания ApplicationServices двумя различными способами:

public Foo(IApplicationBuilder app)
{
   _serviceProvider = app.ApplicationServices.GetService<IServiceProvider>();
   _firstNeededDependancy = _serviceProvider.GetService<IFirstDependency>();

и для других зависимостей, таких как Microsoft.Extensions.Logging.Logger, используйте ApplicationServices.GetService

 public Foo(IApplicationBuilder app)
 {
    _logger = app.ApplicationServices.GetService<ILogger<BusSubscriber>>();

почему для _firstNeededDependancy сначала разрешается IServiceProvider, а затем используется для разрешения IFirstDependency вместо, например, app.ApplicationServices.GetService<IFirstDependency>();, есть ли различия?

...