Uri.MakeRelativeUri(Uri) 方法

定义

确定两 Uri 个实例之间的差异。

public:
 Uri ^ MakeRelativeUri(Uri ^ uri);
public Uri MakeRelativeUri(Uri uri);
member this.MakeRelativeUri : Uri -> Uri
Public Function MakeRelativeUri (uri As Uri) As Uri

参数

uri
Uri

要与当前 URI 进行比较的 URI。

返回

Uri

如果此 URI 实例 uri 的主机名和方案相同,则此方法将返回一个相对 Uri 值,即追加到当前 URI 实例时,将生成 uri

如果主机名或方案不同,则此方法返回一个 Uri 表示 uri 参数。

例外

urinull

此实例表示相对 URI,此属性仅对绝对 URI 有效。

示例

以下示例创建 2 Uri 个实例。 路径信息的差异将写入控制台。

// Create a base Uri.
Uri address1 = new Uri("http://www.contoso.com/");

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

// Determine the relative Uri.
Console.WriteLine("The difference is {0}", address1.MakeRelativeUri(address2));
// Create a base Uri.
let address1 = Uri "http://www.contoso.com/"

// Create a new Uri from a string.
let address2 = Uri "http://www.contoso.com/index.htm?date=today"

// Determine the relative Uri.
printfn $"The difference is {address1.MakeRelativeUri address2}"
    ' Create a base Uri.
    Dim address1 As New Uri("http://www.contoso.com/")
    
    ' Create a new Uri from a string.
    Dim address2 As New Uri("http://www.contoso.com/index.htm?date=today")
    
    ' Determine the relative Uri.  
    Console.WriteLine("The difference is {0}", address1.MakeRelativeUri(address2))

End Sub

注解

下表显示了 URI 实例 toUri和调用 MakeRelativeUri结果。

当前 URI 实例 toUri 返回值
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

用户信息(如果存在于 URI 中)将被忽略。

适用于