Я вижу код, который разрешает его необходимую форму обслуживания 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>();
, есть ли различия?