Uri.MakeRelativeUri Method
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
Determines the difference between two Uri instances.
Assembly: System (in System.dll)
Parameters
- uri
- Type: System.Uri
The URI to compare to the current URI.
Return Value
Type: System.UriIf the hostname and scheme of this URI instance and toUri are the same, then this method returns a relative Uri that, when appended to the current URI instance, yields toUri.
If the hostname or scheme is different, then this method returns a Uri that represents the toUri parameter.
| Exception | Condition |
|---|---|
| InvalidOperationException | This instance represents a relative URI, and this property is valid only for absolute URIs. |
The following table shows the URI instance, toUri, and the results of calling MakeRelativeUri.
Current URI instance | toUri | Return value |
|---|---|---|
http://www.contoso.com/ | http://www.contoso.com/test/test.htm | test/test.htm |
http://www.contoso.com/test1/ | http://www.contoso.com/ | ../ |
http://www.contoso.com:8000/ | http://www.contoso.com/test/test.htm | http://www.contoso.com/test/test.htm |
http://username@www.contoso.com/ | http://www.contoso.com/test1/test1.txt | test1/test1.txt |
User information, if present in the URI, is ignored.
The following example creates 2 Uri instances. The difference in the path information is written to the console.
// Create a base Uri. Uri address12 = new Uri("http://www.contoso.com/"); // Create a new Uri from a string. Uri address22 = new Uri("http://www.contoso.com/index.htm?date=today"); // Determine the relative Uri. outputBlock.Text += "The difference is "; outputBlock.Text += address12.MakeRelativeUri(address22); outputBlock.Text += "\n";