title: why does colon ":" in Uri passed to Uri.MakeRelativeUri cause an exception?
body: <p>The following line of code gives an exception.  Is this a bug in the framework?  If not what approach could I take instead?</p>
  
  <p>It seems to be the ":" (colon) that causes in the issue, however I do see such a URI working on production websites ok (i.e. seems to be a valid URI in the real world)</p>
  
  <pre><code>Uri relativeUri = new Uri("http://test.com/asdf").MakeRelativeUri(new Uri("http://test.com/xx:yy"));
  // gives =&gt; System.UriFormatException: A relative URI cannot be created because the 
  // 'uriString' parameter represents an absolute URI
  
  Uri relativeUri = new Uri("http://test.com/asdf").MakeRelativeUri(new Uri("http://test.com/xxyy"));
  // this works - removed the colon between the xx and yy
  </code></pre>
  
  <p>PS.  Specifically can I ask given the above is the case, what .NET class/method could I use (noting I am parsing a HTML page from the web) to take (a) the page URI and (b) the relative string from a HTML HREF argument [e.g. would have been "/xx:yy" in this case] and return the valid URI that could be used to address that resource?  </p>
  
  <p>In other words how do I mimic the behavior of a browser that translates the HREF and the page URI to produce the URI it uses to go to that resource when you click on it.</p>