internal GrpcServiceBinder(IEndpointRouteBuilder builder, IGrpcMethodModelFactory <TService> serviceModelFactory, ServerCallHandlerFactory <TService> serverCallHandlerFactory, ServiceMethodsRegistry serviceMethodsRegistry)
 {
     _builder = builder;
     _serviceMethodsRegistry   = serviceMethodsRegistry;
     _serverCallHandlerFactory = serverCallHandlerFactory;
     _serviceModelFactory      = serviceModelFactory;
 }
Esempio n. 2
0
 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);
        }