Uri.IsBaseOf(Uri) Method

Definition

Determines whether the current Uri instance is a base of the specified Uri instance.

public:
 bool IsBaseOf(Uri ^ uri);
public bool IsBaseOf (Uri uri);
member this.IsBaseOf : Uri -> bool

Parameters

uri
Uri

The specified Uri instance to test.

Returns

true if the current Uri instance is a base of uri; otherwise, false.

Exceptions

uri is null.

Examples

This example creates a Uri instance that represents a base Uri instance. It then creates a second Uri instance from a string. It calls IsBaseOf to determine whether the base instance is the base of the second instance. The outcome is written to the console.

// Create a base Uri.
Uri^ baseUri = gcnew Uri( "http://www.contoso.com/" );

// Create a new Uri from a string.
Uri^ uriAddress = gcnew Uri( "http://www.contoso.com/index.htm?date=today" );

// Determine whether BaseUri is a base of UriAddress.  
if ( baseUri->IsBaseOf( uriAddress ) )
   Console::WriteLine( "{0} is the base of {1}", baseUri, uriAddress );
// Create a base Uri.
Uri baseUri = new Uri("http://www.contoso.com/");

// Create a new Uri from a string.
Uri uriAddress = new Uri("http://www.contoso.com/index.htm?date=today"); 

// Determine whether BaseUri is a base of UriAddress.  
if (baseUri.IsBaseOf(uriAddress))
    Console.WriteLine("{0} is the base of {1}", baseUri, uriAddress);
' Create a base Uri.
Dim baseUri As New Uri("http://www.contoso.com/")

' Create a new Uri from a string.
Dim uriAddress As New Uri("http://www.contoso.com/index.htm?date=today")

' Determine whether BaseUri is a base of UriAddress.  
If baseUri.IsBaseOf(uriAddress) Then
    Console.WriteLine("{0} is the base of {1}", baseUri, uriAddress)
End If

Remarks

IsBaseOf is used to compare the current Uri instance to a specified Uri to determine whether this URI is a base for the specified Uri. When comparing two Uri objects to determine a base relationship, the user information (UserInfo) is not evaluated. When comparing two URIs (uri1 and uri2), uri1 is the base of uri2 if, when you ignore everything in uri2 after the last slash (/), the two URIs are identical. Using http://host/path/path/file?query as the base URI, the following table shows whether it is a base for other URIs.

URI http://host/path/path/file?query is base of
http://host/path/path/file/ yes
http://host/path/path/#fragment yes
http://host/path/path/MoreDir/" yes
http://host/path/path/OtherFile?Query yes
http://host/path/path/ yes
http://host/path/path/file yes
http://host/path/path no
http://host/path/path?query no
http://host/path/path#Fragment no
http://host/path/path2/ no
://host/path/path2/MoreDir no
http://host/path/File no

Applies to