Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>This is what's happening essentially:</p> <p><em>HttpMessageInvoker &amp; HttpClient</em></p> <pre><code>class HttpMessageInvoker { private HttpMessageHandler handler; public HttpMessageInvoker(HttpMessageHandler handler) { this.handler = handler; } public virtual void SendAsync() { Console.WriteLine("HttpMessageInvoker.SendAsync"); this.handler.SendAsync(); } } class HttpClient : HttpMessageInvoker { public HttpClient(HttpMessageHandler handler) : base(handler) { } public override void SendAsync() { Console.WriteLine("HttpClient.SendAsync"); base.SendAsync(); } } </code></pre> <p><em>HttpMessageHandler &amp; HttpClientHandler</em></p> <pre><code>abstract class HttpMessageHandler { protected internal abstract void SendAync(); } class HttpClientHandler : HttpMessageHandler { protected internal override void SendAync() { Console.WriteLine("HttpClientHandler.SendAsync"); } } </code></pre> <p>So if you call <code>SendAsync</code> on an <code>HttpClient</code> instance, that method is executed. The method calls the <code>SendAsync</code> method from <code>HttpMessageInvoker</code>. This method calls the <code>SendAsync</code> method of a <code>HttpMessageHandler</code> instance. <code>HttpMessageHandler</code> is abstract; <code>HttpClientHandler</code> provides a concrete implementation of the abstract <code>SendAync</code> method by overriding it.</p> <p><em>Example:</em></p> <pre><code>var handler = new HttpClientHandler(); var client = new HttpClient(handler); client.SendAsync(); </code></pre> <p><em>Output:</em></p> <pre> HttpClient.SendAsync HttpMessageInvoker.SendAsync HttpClientHandler.SendAsync </pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload