Вопрос: Можно ли зарегистрировать / отменить регистрацию сервисов grp c после запуска?
Ниже приведен традиционный способ регистрации сервиса grp c:
public class Startup
{
// This method gets called by the runtime. Use this method to add services to the container.
// For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
public void ConfigureServices(IServiceCollection services)
{
services.AddGrpc();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapGrpcService<GreeterErvice>();
});
}
}
Taken из известного примера проекта grp c. net. Источники, например: https://github.com/grpc/grpc-dotnet/blob/master/examples/Greeter/Server/Startup.cs или https://docs.microsoft.com/en-us/aspnet/core/grpc/?view=aspnetcore-3.1
Каков рекомендуемый способ добавления / удаления служб после завершения запуска и запуска пустельги? Один из способов - использовать одну фиктивную службу маршрутизации, которая затем будет хранить реестр служб и маршрутизацию запросов к ним. Это, однако, требует изменения контрактов и, возможно, заново изобретает колесо правильного обнаружения и маршрутизации обработчиков.