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); }
private void AddServiceCore(Action <ServiceMethodProviderContext <DynamicService> > action) { // Set action for adding dynamic method var serviceMethodProviders = _serviceProvider.GetServices <IServiceMethodProvider <DynamicService> >().ToList(); var dynamicServiceModelProvider = serviceMethodProviders.OfType <DynamicServiceModelProvider>().Single(); dynamicServiceModelProvider.CreateMethod = action; // Add to dynamic endpoint route builder var routeBuilder = new DynamicEndpointRouteBuilder(_serviceProvider); routeBuilder.MapGrpcService <DynamicService>(); var endpoints = routeBuilder.DataSources.SelectMany(ds => ds.Endpoints).ToList(); _endpointDataSource.AddEndpoints(endpoints); }