Esempio n. 1
0
        public void AddClientStreamingMethod <TRequest, TResponse>(
            Method <TRequest, TResponse> method,
            IList <object> metadata,
            Func <TService, IAsyncStreamReader <TRequest>, ServerCallContext, Task <TResponse> > handler)
            where TRequest : class
            where TResponse : class
        {
            var invoker = new ClientStreamingServerCallHandler <TService, TRequest, TResponse>(_serviceFactory, handler);

            _builder.AddMethod(method, invoker.Handle);
        }
Esempio n. 2
0
        public void AddClientStreamingMethod <TRequestHeader, TRequest, TResponse>(
            Method <Message <TRequest>, TResponse> method,
            Func <MethodInfo> resolveContractMethodDefinition,
            Marshaller <TRequestHeader>?requestHeaderMarshaller,
            IList <object> metadata,
            Func <TService, TRequestHeader?, IAsyncEnumerable <TRequest>, ServerCallContext, Task <TResponse> > handler)
            where TRequestHeader : class
            where TResponse : class
        {
            var filterHandlerFactory = _filterRegistration.CreateHandlerFactory(metadata, resolveContractMethodDefinition);

            ValidateFilterFactoryConfiguration(filterHandlerFactory);

            var invoker = new ClientStreamingServerCallHandler <TService, TRequestHeader, TRequest, TResponse>(
                _serviceFactory,
                handler,
                requestHeaderMarshaller,
                filterHandlerFactory);

            _builder.AddMethod(method, invoker.Handle);
        }