Uri::MakeRelativeUri Method (Uri^)
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::Uri^If the hostname and scheme of this URI instance and uri are the same, then this method returns a relative Uri that, when appended to the current URI instance, yields uri.
If the hostname or scheme is different, then this method returns a Uri that represents the uri parameter.
| Exception | Condition |
|---|---|
| ArgumentNullException | uri is null. |
| 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^ address1 = gcnew Uri( "http://www.contoso.com/" ); // Create a new Uri from a string. Uri^ address2 = gcnew Uri( "http://www.contoso.com/index.htm?date=today" ); // Determine the relative Uri. Console::WriteLine( "The difference is {0}", address1->MakeRelativeUri( address2 ) );
Available since 8
.NET Framework
Available since 2.0
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1