コード例 #1
0
        UnsubscribeAction IResponseHandler.Connect(IInboundPipelineConfigurator configurator)
        {
            var connector = new RequestHandlerSubscriptionConnector <TResponse>();

            HandlerSelector <TResponse> handler = HandlerSelector.ForContextHandler <TResponse>(HandleResponse);

            return(connector.Connect(configurator, _requestId, handler));
        }
コード例 #2
0
        public void Handle <TResponse>(Action <TResponse> handler)
            where TResponse : class
        {
            var connector = new RequestHandlerSubscriptionConnector <TResponse>();

            Action <TResponse> responseHandler = message =>
            {
                try
                {
                    handler(message);

                    _request.Complete(message);
                }
                catch (Exception ex)
                {
                    var exception = new RequestException("The response handler threw an exception", ex, message);
                    _request.Fail(exception);
                }
            };

            _handlers.Add(
                x => { return(connector.Connect(x, _requestId, HandlerSelector.ForHandler(responseHandler))); });
        }