internal GrpcServiceBinder(IEndpointRouteBuilder builder, IGrpcMethodModelFactory <TService> serviceModelFactory, ServerCallHandlerFactory <TService> serverCallHandlerFactory, ServiceMethodsRegistry serviceMethodsRegistry) { _builder = builder; _serviceMethodsRegistry = serviceMethodsRegistry; _serverCallHandlerFactory = serverCallHandlerFactory; _serviceModelFactory = serviceModelFactory; }
internal GrpcServiceBinder( IEndpointRouteBuilder builder, IGrpcMethodModelFactory <TService> serviceModelFactory, ServerCallHandlerFactory <TService> serverCallHandlerFactory, ServiceMethodsRegistry serviceMethodsRegistry, ILoggerFactory loggerFactory) { _builder = builder; _serviceMethodsRegistry = serviceMethodsRegistry; _logger = loggerFactory.CreateLogger(GetType()); _serverCallHandlerFactory = serverCallHandlerFactory; _serviceModelFactory = serviceModelFactory; }
private void AddServiceCore <TService>(Action <ServiceBinderBase, TService> bindAction, IGrpcMethodModelFactory <TService> modelFactory) where TService : class { var routeBuilder = new DynamicEndpointRouteBuilder(_serviceProvider); routeBuilder.MapGrpcService <TService>(options => { options.BindAction = bindAction; options.ModelFactory = modelFactory; }); var endpoints = routeBuilder.DataSources.SelectMany(ds => ds.Endpoints).ToList(); _endpointDataSource.AddEndpoints(endpoints); }