HttpResponseHandler that can be chained into a response pipeline
Inheritance: IHttpResponseHandler
示例#1
0
        /// <summary>
        /// Add response handler to end of chain of handlers
        /// </summary>
        /// <param name="link"></param>
        /// <param name="responseHandler"></param>
        public static void AddHandler(this Link link, DelegatingResponseHandler responseHandler)
        {
            if (link.HttpResponseHandler == null)
            {
                link.HttpResponseHandler = responseHandler;
            }
            else
            {
                var currentHandler = link.HttpResponseHandler as DelegatingResponseHandler;
                if (currentHandler == null)
                {
                    throw new Exception("Cannot add handler unless existing handler is a delegating handler");
                }

                while (currentHandler != null)
                {
                    if (currentHandler.InnerResponseHandler == null)
                    {
                        currentHandler.InnerResponseHandler = responseHandler;
                        currentHandler = null;
                    }
                    else
                    {
                        currentHandler = currentHandler.InnerResponseHandler;
                    }
                }
            }
        }
 /// <summary>
 /// Add response handler to end of chain of handlers
 /// </summary>
 /// <param name="link"></param>
 /// <param name="responseHandler"></param>
 public static void AddHandler(this Link link, DelegatingResponseHandler responseHandler)
 {
    
     if (link.HttpResponseHandler == null)
     {
         link.HttpResponseHandler = responseHandler;
     }
     else
     {
         var currentHandler = link.HttpResponseHandler as DelegatingResponseHandler;
         if (currentHandler == null) throw new Exception("Cannot add handler unless existing handler is a delegating handler");
     
         while (currentHandler != null)
         {
             if (currentHandler.InnerResponseHandler == null)
             {
                 currentHandler.InnerResponseHandler = responseHandler;
                 currentHandler = null;
             }
             else
             {
                 currentHandler = currentHandler.InnerResponseHandler;
             } 
         }
     }
 }
        public OkHandler(DelegatingResponseHandler innerHandler) : base(innerHandler)
        {

        }
 public NotFoundHandler(DelegatingResponseHandler innerHandler) : base(innerHandler)
 {
     
 }
 public ActionResponseHandler(Action<HttpResponseMessage> action, DelegatingResponseHandler innerHandler = null)
 {
     InnerResponseHandler = innerHandler;
     _action = action;
 }
示例#6
0
 public InlineResponseHandler(Action <String, HttpResponseMessage> action, DelegatingResponseHandler innerHandler = null)
 {
     InnerResponseHandler = innerHandler;
     _action = action;
 }
示例#7
0
 protected DelegatingResponseHandler(DelegatingResponseHandler innerResponseHandler)
 {
     InnerResponseHandler = innerResponseHandler;
 }
 protected DelegatingResponseHandler(DelegatingResponseHandler innerResponseHandler)
 {
     InnerResponseHandler = innerResponseHandler;
 }
 public InlineResponseHandler(Action<String,HttpResponseMessage> action, DelegatingResponseHandler innerHandler = null)
 {
     InnerResponseHandler = innerHandler;
     _action = action;
 }