#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) {
....
}
}