title: Cancelling an HttpClient Request - Why is TaskCanceledException.CancellationToken.IsCancellationRequested false?
body: <p>Given the following code:</p>
  
  <pre><code>var cts = new CancellationTokenSource();
  
  try 
  {
      // get a "hot" task
      var task = new HttpClient().GetAsync("http://www.google.com", cts.Token);
  
      // request cancellation
      cts.Cancel();
  
      await task;
  
      // pass:
      Assert.Fail("expected TaskCanceledException to be thrown");
  }
  catch (TaskCanceledException ex) 
  {
      // pass:
      Assert.IsTrue(cts.Token.IsCancellationRequested,
          "expected cancellation requested on original token");
  
      // fail:
      Assert.IsTrue(ex.CancellationToken.IsCancellationRequested,
          "expected cancellation requested on token attached to exception");
  }
  </code></pre>
  
  <p>I would expect <code>ex.CancellationToken.IsCancellationRequested</code> to be <code>true</code> inside the catch block, but it is not. Am I misunderstanding something?</p>