private void AddServiceCore <TService>(Action <ServiceBinderBase, TService> bindAction, IGrpcMethodInvokerFactory <TService> invokerFactory) where TService : class { var routeBuilder = new DynamicEndpointRouteBuilder(_serviceProvider); routeBuilder.MapGrpcService <TService>(options => { options.BindAction = bindAction; options.InvokerFactory = invokerFactory; }); var endpoints = routeBuilder.DataSources.SelectMany(ds => ds.Endpoints).ToList(); _endpointDataSource.AddEndpoints(endpoints); }
internal GrpcServiceBinder(IEndpointRouteBuilder builder, ServerCallHandlerFactory <TService> serverCallHandlerFactory, IGrpcMethodInvokerFactory <TService> serviceInvoker) { _builder = builder; _serverCallHandlerFactory = serverCallHandlerFactory; _serviceInvokerFactory = serviceInvoker; }