Нетерпеливая загрузка конечных точек GRPC в ASP.net Ядро 3.1

#dependency-injection #asp.net-core-3.1

#внедрение зависимостей #asp.net-core-3.1

Вопрос:

есть ли способ быстро загружать конечные точки GRPC, чтобы службы класса разрешались при запуске приложения? В настоящее время я регистрирую конечные точки GRPC следующим образом:

 public class Startup {

    ...

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env) {
      if (env.IsDevelopment()) {
        app.UseDeveloperExceptionPage();
      }

      app.UseRouting();

      app.UseEndpoints(endpoints => {
        endpoints.MapGrpcService<GrpcEndpointImpl>();
        ... More endpoints
      });
    }
}

public class GrpcEndpointImpl() {

    public GrpcEndpointImpl(ExampleService service) {
       ....
    }

}
 

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

С наилучшими пожеланиями.

Ответ №1:

В итоге я разрешил зависимость класса в своем методе Configure следующим образом:

 public class Startup {

    ...

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env) {
      if (env.IsDevelopment()) {
        app.UseDeveloperExceptionPage();
      }

      app.UseRouting();

      app.UseEndpoints(endpoints => {
        endpoints.MapGrpcService<GrpcEndpointImpl>();
        ... More endpoints
      });
      app.ApplicationServices.GetService<ExampleService>(); // Note this line here
    }
}

public class GrpcEndpointImpl() {

    public GrpcEndpointImpl(ExampleService service) {
       ....
    }

}