共用方式為


Uri 建構函式

定義

初始化 Uri 類別的新實例。

多載

Uri(String)

使用指定的 URI,初始化 Uri 類別的新實例。

Uri(SerializationInfo, StreamingContext)
已淘汰.

SerializationInfoStreamingContext 類別的指定實例,初始化 Uri 類別的新實例。

Uri(String, Boolean)
已淘汰.
已淘汰.
已淘汰.

使用指定的 URI 初始化 Uri 類別的新實例,並明確控制字元逸出。

Uri(String, UriCreationOptions)

使用指定的 URI 和其他 UriCreationOptions,初始化 Uri 類別的新實例。

Uri(String, UriKind)

使用指定的 URI,初始化 Uri 類別的新實例。 此建構函式可讓您指定 URI 字串是否為相對 URI、絕對 URI 或不確定。

Uri(Uri, String)

根據指定的基底 URI 和相對 URI 字串,初始化 Uri 類別的新實例。

Uri(Uri, Uri)

根據指定的基底 Uri 實例和相對 Uri 實例的組合,初始化 Uri 類別的新實例。

Uri(Uri, String, Boolean)
已淘汰.
已淘汰.
已淘汰.

根據指定的基底和相對URI,初始化 Uri 類別的新實例,並明確控制字元逸出。

Uri(String)

來源:
Uri.cs
來源:
Uri.cs
來源:
Uri.cs

使用指定的 URI,初始化 Uri 類別的新實例。

public:
 Uri(System::String ^ uriString);
public Uri (string uriString);
new Uri : string -> Uri
Public Sub New (uriString As String)

參數

uriString
String

字串,識別要由 Uri 實例表示的資源。 請注意,字串格式的 IPv6 位址必須括在括弧內。 例如,“HTTP://[2607:f8b0:400d:c06::69]”。

例外狀況

uriString null

注意:在適用於 Windows 市集應用程式的 .NET 中,可攜式類別庫,改為攔截基類例外狀況,FormatException

uriString 是空的。

-或-

uriString 中指定的配置格式不正確。 請參閱 CheckSchemeName(String)

-或-

uriString 包含太多斜線。

-或-

uriString 中指定的密碼無效。

-或-

uriString 中指定的主機名無效。

-或-

uriString 中指定的檔名無效。

-或-

uriString 中指定的使用者名稱無效。

-或-

uriString 中指定的主機或授權單位名稱無法由反斜杠終止。

-或-

uriString 中指定的埠號碼無效或無法剖析。

-或-

uriString 長度超過 65519 個字元。

-或-

uriString 中指定的配置長度超過 1023 個字元。

-或-

uriString中有無效的字元序列。

-或-

uriString 中指定的 MS-DOS 路徑必須以 c:\\開頭。

範例

下列範例會使用 URI http://www.contoso.com/建立 Uri 實例。

Uri^ baseUri = gcnew Uri( "http://www.contoso.com/" );
Uri myUri = new Uri("http://www.contoso.com/");
let myUri = Uri "http://www.contoso.com/"
Dim myUri As New Uri("http://www.contoso.com/")

備註

此建構函式會從 URI 字串建立 Uri 實例。 它會剖析 URI、以標準格式放置它,並進行任何必要的逸出編碼。

此建構函式不會確保 Uri 參考可存取的資源。

此建構函式假設 string 參數會參考絕對 URI,且相當於呼叫 Uri 建構函式,並將 UriKind 設定為 Absolute。 如果傳遞至建構函式的 string 參數是相對 URI,則此建構函式會擲回 UriFormatException

適用於

Uri(SerializationInfo, StreamingContext)

來源:
Uri.cs
來源:
Uri.cs
來源:
Uri.cs

警告

This API supports obsolete formatter-based serialization. It should not be called or extended by application code.

SerializationInfoStreamingContext 類別的指定實例,初始化 Uri 類別的新實例。

protected:
 Uri(System::Runtime::Serialization::SerializationInfo ^ serializationInfo, System::Runtime::Serialization::StreamingContext streamingContext);
protected Uri (System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext);
[System.Obsolete("This API supports obsolete formatter-based serialization. It should not be called or extended by application code.", DiagnosticId="SYSLIB0051", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
protected Uri (System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext);
new Uri : System.Runtime.Serialization.SerializationInfo * System.Runtime.Serialization.StreamingContext -> Uri
[<System.Obsolete("This API supports obsolete formatter-based serialization. It should not be called or extended by application code.", DiagnosticId="SYSLIB0051", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
new Uri : System.Runtime.Serialization.SerializationInfo * System.Runtime.Serialization.StreamingContext -> Uri
Protected Sub New (serializationInfo As SerializationInfo, streamingContext As StreamingContext)

參數

serializationInfo
SerializationInfo

SerializationInfo 類別的實例,其中包含串行化新 Uri 實例所需的資訊。

streamingContext
StreamingContext

StreamingContext 類別的實例,其中包含與新 Uri 實例相關聯的串行化數據流來源。

屬性

例外狀況

serializationInfo 參數包含 null URI。

serializationInfo 參數包含空的URI。

-或-

指定的配置格式不正確。 請參閱 CheckSchemeName(String)

-或-

URI 包含太多斜線。

-或-

URI 中指定的密碼無效。

-或-

URI 中指定的主機名無效。

-或-

URI 中指定的檔名無效。

-或-

URI 中指定的使用者名稱無效。

-或-

URI 中指定的主機或授權單位名稱無法由反斜杠終止。

-或-

URI 中指定的埠號碼無效或無法剖析。

-或-

URI 的長度超過 65519 個字元。

-或-

URI 中指定的配置長度超過 1023 個字元。

-或-

URI 中有無效的字元序列。

-或-

URI 中指定的 MS-DOS 路徑必須以 c:\\開頭。

備註

這個建構函式會實作 Uri 類別的 ISerializable 介面。

另請參閱

適用於

Uri(String, Boolean)

來源:
Uri.cs
來源:
Uri.cs
來源:
Uri.cs

警告

The constructor has been deprecated. Please use new Uri(string). The dontEscape parameter is deprecated and is always false. https://go.microsoft.com/fwlink/?linkid=14202

警告

This constructor has been deprecated; the dontEscape parameter is always false. Use Uri(string) instead.

警告

The constructor has been deprecated. Please use new Uri(string). The dontEscape parameter is deprecated and is always false. http://go.microsoft.com/fwlink/?linkid=14202

使用指定的 URI 初始化 Uri 類別的新實例,並明確控制字元逸出。

public:
 Uri(System::String ^ uriString, bool dontEscape);
[System.Obsolete("The constructor has been deprecated. Please use new Uri(string). The dontEscape parameter is deprecated and is always false. https://go.microsoft.com/fwlink/?linkid=14202")]
public Uri (string uriString, bool dontEscape);
[System.Obsolete("This constructor has been deprecated; the dontEscape parameter is always false. Use Uri(string) instead.")]
public Uri (string uriString, bool dontEscape);
[System.Obsolete("The constructor has been deprecated. Please use new Uri(string). The dontEscape parameter is deprecated and is always false. http://go.microsoft.com/fwlink/?linkid=14202")]
public Uri (string uriString, bool dontEscape);
public Uri (string uriString, bool dontEscape);
[<System.Obsolete("The constructor has been deprecated. Please use new Uri(string). The dontEscape parameter is deprecated and is always false. https://go.microsoft.com/fwlink/?linkid=14202")>]
new Uri : string * bool -> Uri
[<System.Obsolete("This constructor has been deprecated; the dontEscape parameter is always false. Use Uri(string) instead.")>]
new Uri : string * bool -> Uri
[<System.Obsolete("The constructor has been deprecated. Please use new Uri(string). The dontEscape parameter is deprecated and is always false. http://go.microsoft.com/fwlink/?linkid=14202")>]
new Uri : string * bool -> Uri
new Uri : string * bool -> Uri
Public Sub New (uriString As String, dontEscape As Boolean)

參數

uriString
String

字串,識別要由 Uri 實例表示的資源。 請注意,字串格式的 IPv6 位址必須括在括弧內。 例如,“HTTP://[2607:f8b0:400d:c06::69]”。

dontEscape
Boolean

如果完全逸出 uriStringtrue;否則,false

屬性

例外狀況

uriString null

uriString 是空的,或只包含空格。

-或-

uriString 中指定的配置無效。

-或-

uriString 包含太多斜線。

-或-

uriString 中指定的密碼無效。

-或-

uriString 中指定的主機名無效。

-或-

uriString 中指定的檔名無效。

-或-

uriString 中指定的使用者名稱無效。

-或-

uriString 中指定的主機或授權單位名稱無法由反斜杠終止。

-或-

uriString 中指定的埠號碼無效或無法剖析。

-或-

uriString 長度超過 65519 個字元。

-或-

uriString 中指定的配置長度超過 1023 個字元。

-或-

uriString中有無效的字元序列。

-或-

uriString 中指定的 MS-DOS 路徑必須以 c:\\開頭。

範例

下列範例會為 URI http://www.contoso.com/Hello%20World.htm建立 Uri 實例。 由於包含的 URI 已完全逸出且格式為標準,因此 dontEscape 參數可以設定為 true

Uri^ myUri = gcnew Uri(  "http://www.contoso.com/Hello%20World.htm",true );
Uri myUri = new Uri("http://www.contoso.com/Hello%20World.htm", true);
let myUri = Uri("http://www.contoso.com/Hello%20World.htm", true)
Dim myUri As New Uri("http://www.contoso.com/Hello%20World.htm", True)

備註

此建構函式會從 URI 字串建立 Uri 實例。 它會剖析 URI,並將它放入標準格式。

dontEscape 參數會控制保留字元是否轉譯成逸出序列。 只有當您確定 URI 中的所有保留字元都已逸出時,才應該將此參數設定為 true。 將尚未完全逸出之 URI 的值設定為 true 可能會導致非預期的行為。 強烈建議您一律將此參數設定為 false

如果 dontEscape 設定為 false,建構函式會藉由檢查所有出現的百分比 (%) 後面接著有效的逸出序列,以逸出任何保留字元。 如果後百分比的字元序列無效,則百分比會由 %25取代。

此建構函式不會確保 Uri 參考可存取的資源。

適用於

Uri(String, UriCreationOptions)

來源:
Uri.cs
來源:
Uri.cs
來源:
Uri.cs

使用指定的 URI 和其他 UriCreationOptions,初始化 Uri 類別的新實例。

public:
 Uri(System::String ^ uriString, UriCreationOptions % creationOptions);
public Uri (string uriString, in UriCreationOptions creationOptions);
new Uri : string * UriCreationOptions -> Uri
Public Sub New (uriString As String, ByRef creationOptions As UriCreationOptions)

參數

uriString
String

字串,識別要由 Uri 實例表示的資源。

creationOptions
UriCreationOptions

控制建立和行為 Uri 的選項。

適用於

Uri(String, UriKind)

來源:
Uri.cs
來源:
Uri.cs
來源:
Uri.cs

使用指定的 URI,初始化 Uri 類別的新實例。 此建構函式可讓您指定 URI 字串是否為相對 URI、絕對 URI 或不確定。

public:
 Uri(System::String ^ uriString, UriKind uriKind);
public Uri (string uriString, UriKind uriKind);
new Uri : string * UriKind -> Uri
Public Sub New (uriString As String, uriKind As UriKind)

參數

uriString
String

字串,識別要由 Uri 實例表示的資源。 請注意,字串格式的 IPv6 位址必須括在括弧內。 例如,“HTTP://[2607:f8b0:400d:c06::69]”。

uriKind
UriKind

指定 URI 字串是相對 URI、絕對 URI 或不確定。

例外狀況

uriKind 無效。

uriString null

注意:在適用於 Windows 市集應用程式的 .NET 中,可攜式類別庫,改為攔截基類例外狀況,FormatException

uriString 包含相對 URI,且 uriKindAbsolute

uriString 包含絕對 URI,且 uriKindRelative

uriString 是空的。

-或-

uriString 中指定的配置格式不正確。 請參閱 CheckSchemeName(String)

-或-

uriString 包含太多斜線。

-或-

uriString 中指定的密碼無效。

-或-

uriString 中指定的主機名無效。

-或-

uriString 中指定的檔名無效。

-或-

uriString 中指定的使用者名稱無效。

-或-

uriString 中指定的主機或授權單位名稱無法由反斜杠終止。

-或-

uriString 中指定的埠號碼無效或無法剖析。

-或-

uriString 長度超過 65519 個字元。

-或-

uriString 中指定的配置長度超過 1023 個字元。

-或-

uriString中有無效的字元序列。

-或-

uriString 中指定的 MS-DOS 路徑必須以 c:\\開頭。

備註

相對和絕對 URI 對其格式有不同的限制。 例如,相對 URI 不需要配置或授權單位。 您在 uriKind 中指定的值必須符合傳入 uriString的 URI 類型。 不過,如果指定 RelativeOrAbsolute,URI 字串可以是相對或絕對的。

適用於

Uri(Uri, String)

來源:
Uri.cs
來源:
Uri.cs
來源:
Uri.cs

根據指定的基底 URI 和相對 URI 字串,初始化 Uri 類別的新實例。

public:
 Uri(Uri ^ baseUri, System::String ^ relativeUri);
public Uri (Uri baseUri, string relativeUri);
public Uri (Uri baseUri, string? relativeUri);
new Uri : Uri * string -> Uri
Public Sub New (baseUri As Uri, relativeUri As String)

參數

baseUri
Uri

基底 URI。

relativeUri
String

要新增至基底 URI 的相對 URI。

例外狀況

baseUri null

baseUri 不是絕對 Uri 實例。

注意:在適用於 Windows 市集應用程式的 .NET 中,可攜式類別庫,改為攔截基類例外狀況,FormatException

結合 baseUrirelativeUri 所形成的 URI 是空的,或只包含空格。

-或-

結合 baseUrirelativeUri 所形成之 URI 中指定的配置無效。

-或-

結合 baseUrirelativeUri 所形成的 URI 包含太多斜線。

-或-

結合 baseUrirelativeUri 所形成之 URI 中指定的密碼無效。

-或-

結合 baseUrirelativeUri 所形成之 URI 中指定的主機名無效。

-或-

結合 baseUrirelativeUri 所形成之 URI 中指定的檔名無效。

-或-

結合 baseUrirelativeUri 所形成之 URI 中指定的使用者名稱無效。

-或-

結合 baseUrirelativeUri 所形成之 URI 中指定的主機或授權單位名稱,無法以反斜杠終止。

-或-

結合 baseUrirelativeUri 所形成之 URI 中指定的埠號碼無效或無法剖析。

-或-

結合 baseUrirelativeUri 所形成的 URI 長度超過 65519 個字元。

-或-

結合 baseUrirelativeUri 所形成之 URI 中指定的配置長度超過 1023 個字元。

-或-

結合 baseUrirelativeUri所形成之 URI 中有無效的字元序列。

-或-

baseUri 中指定的 MS-DOS 路徑必須以 c:\\開頭。

範例

下列範例會結合相對 URI http://www.contoso.comcatalog/shownew.htm,以形成絕對 URI http://www.contoso.com/catalog/shownew.htm,以建立 Uri 類別的新實例。

Uri^ baseUri = gcnew Uri(  "http://www.contoso.com" );
Uri^ myUri = gcnew Uri( baseUri, "catalog/shownew.htm" );
Console::WriteLine( myUri->ToString() );
Uri baseUri = new Uri("http://www.contoso.com");
 Uri myUri = new Uri(baseUri, "catalog/shownew.htm");

Console.WriteLine(myUri.ToString());
let baseUri = Uri "http://www.contoso.com"
let myUri = Uri(baseUri, "catalog/shownew.htm")

printfn $"{myUri}"
Dim baseUri As New Uri("http://www.contoso.com")
Dim myUri As New Uri(baseUri, "catalog/shownew.htm")

Console.WriteLine(myUri.ToString())

備註

這個建構函式會結合 baseUrirelativeUri來建立 Uri 實例。 如果 relativeUri 是絕對 URI(包含配置、主機名和選擇性埠號碼),Uri 實例只會使用 relativeUri來建立。

如果 baseUri 有相對部分(例如 /api),則如果建構的 Uri中要保留 baseUri 的相對部分,則必須以斜線終止相對部分(例如 /api/)。

此外,如果 relativeUri 以斜線開頭,則會取代 baseUri 的任何相對部分

此建構函式不會確保 Uri 參考可存取的資源。

適用於

Uri(Uri, Uri)

來源:
Uri.cs
來源:
Uri.cs
來源:
Uri.cs

根據指定的基底 Uri 實例和相對 Uri 實例的組合,初始化 Uri 類別的新實例。

public:
 Uri(Uri ^ baseUri, Uri ^ relativeUri);
public Uri (Uri baseUri, Uri relativeUri);
new Uri : Uri * Uri -> Uri
Public Sub New (baseUri As Uri, relativeUri As Uri)

參數

baseUri
Uri

絕對 Uri,這是新 Uri 實例的基礎。

relativeUri
Uri

baseUri結合的相對 Uri 實例。

例外狀況

baseUri 不是絕對 Uri 實例。

baseUri null

baseUri 不是絕對 Uri 實例。

注意:在適用於 Windows 市集應用程式的 .NET 中,可攜式類別庫,改為攔截基類例外狀況,FormatException

結合 baseUrirelativeUri 所形成的 URI 是空的,或只包含空格。

-或-

結合 baseUrirelativeUri 所形成之 URI 中指定的配置無效。

-或-

結合 baseUrirelativeUri 所形成的 URI 包含太多斜線。

-或-

結合 baseUrirelativeUri 所形成之 URI 中指定的密碼無效。

-或-

結合 baseUrirelativeUri 所形成之 URI 中指定的主機名無效。

-或-

結合 baseUrirelativeUri 所形成之 URI 中指定的檔名無效。

-或-

結合 baseUrirelativeUri 所形成之 URI 中指定的使用者名稱無效。

-或-

結合 baseUrirelativeUri 所形成之 URI 中指定的主機或授權單位名稱,無法以反斜杠終止。

-或-

結合 baseUrirelativeUri 所形成之 URI 中指定的埠號碼無效或無法剖析。

-或-

結合 baseUrirelativeUri 所形成的 URI 長度超過 65519 個字元。

-或-

結合 baseUrirelativeUri 所形成之 URI 中指定的配置長度超過 1023 個字元。

-或-

結合 baseUrirelativeUri所形成之 URI 中有無效的字元序列。

-或-

baseUri 中指定的 MS-DOS 路徑必須以 c:\\開頭。

範例

此範例會建立絕對 Uri 實體、absoluteUri和相對 Uri 實體,relativeUri。 接著會從這兩個實例建立新的 Uri 實例 combinedUri

// Create an absolute Uri from a string.
String^ addressString1 = "http://www.contoso.com/";
String^ addressString2 = "catalog/shownew.htm?date=today";
Uri^ absoluteUri = gcnew Uri(addressString1);

// Create a relative Uri from a string.  allowRelative = true to allow for 
// creating a relative Uri.
Uri^ relativeUri = gcnew Uri(addressString2);

// Check whether the new Uri is absolute or relative.
if (  !relativeUri->IsAbsoluteUri )
   Console::WriteLine( "{0} is a relative Uri.", relativeUri );

// Create a new Uri from an absolute Uri and a relative Uri.
Uri^ combinedUri = gcnew Uri( absoluteUri,relativeUri );
Console::WriteLine( combinedUri->AbsoluteUri );
// Create an absolute Uri from a string.
Uri absoluteUri = new Uri("http://www.contoso.com/");

// Create a relative Uri from a string.  allowRelative = true to allow for
// creating a relative Uri.
Uri relativeUri = new Uri("/catalog/shownew.htm?date=today", UriKind.Relative);

// Check whether the new Uri is absolute or relative.
if (!relativeUri.IsAbsoluteUri)
    Console.WriteLine("{0} is a relative Uri.", relativeUri);

// Create a new Uri from an absolute Uri and a relative Uri.
Uri combinedUri = new Uri(absoluteUri, relativeUri);
Console.WriteLine(combinedUri.AbsoluteUri);
// Create an absolute Uri from a string.
let absoluteUri = Uri "http://www.contoso.com/"

// Create a relative Uri from a string.  allowRelative = true to allow for
// creating a relative Uri.
let relativeUri = Uri("/catalog/shownew.htm?date=today", UriKind.Relative)

// Check whether the new Uri is absolute or relative.
if not relativeUri.IsAbsoluteUri then
    printfn $"{relativeUri} is a relative Uri."

// Create a new Uri from an absolute Uri and a relative Uri.
let combinedUri = Uri(absoluteUri, relativeUri)
printfn $"{combinedUri.AbsoluteUri}"
    ' Create an absolute Uri from a string.
    Dim absoluteUri As New Uri("http://www.contoso.com/")
    
    ' Create a relative Uri from a string.  allowRelative = true to allow for 
    ' creating a relative Uri.
    Dim relativeUri As New Uri("/catalog/shownew.htm?date=today")
    
    ' Check whether the new Uri is absolute or relative.
    If Not relativeUri.IsAbsoluteUri Then
        Console.WriteLine("{0} is a relative Uri.", relativeUri)
    End If 
    ' Create a new Uri from an absolute Uri and a relative Uri.
    Dim combinedUri As New Uri(absoluteUri, relativeUri)
    Console.WriteLine(combinedUri.AbsoluteUri)

End Sub

備註

這個建構函式會結合絕對 Uri 實例 baseUri,搭配相對 Uri 實例,relativeUri,建立新的 Uri 實例。 如果 relativeUri 是絕對 Uri 實例(包含配置、主機名和選擇性埠號碼),Uri 實例只會使用 relativeUri來建立。

如果 baseUri 有相對部分(例如 /api),則如果建構的 Uri中要保留 baseUri 的相對部分,則必須以斜線終止相對部分(例如 /api/)。

此外,如果 relativeUri 以斜線開頭,則會取代 baseUri 的任何相對部分

此建構函式不會確保 Uri 參考可存取的資源。

適用於

Uri(Uri, String, Boolean)

來源:
Uri.cs
來源:
Uri.cs
來源:
Uri.cs

警告

The constructor has been deprecated. Please new Uri(Uri, string). The dontEscape parameter is deprecated and is always false. https://go.microsoft.com/fwlink/?linkid=14202

警告

This constructor has been deprecated; the dontEscape parameter is always false. Use Uri(Uri, string) instead.

警告

The constructor has been deprecated. Please new Uri(Uri, string). The dontEscape parameter is deprecated and is always false. http://go.microsoft.com/fwlink/?linkid=14202

根據指定的基底和相對URI,初始化 Uri 類別的新實例,並明確控制字元逸出。

public:
 Uri(Uri ^ baseUri, System::String ^ relativeUri, bool dontEscape);
[System.Obsolete("The constructor has been deprecated. Please new Uri(Uri, string). The dontEscape parameter is deprecated and is always false. https://go.microsoft.com/fwlink/?linkid=14202")]
public Uri (Uri baseUri, string? relativeUri, bool dontEscape);
[System.Obsolete("This constructor has been deprecated; the dontEscape parameter is always false. Use Uri(Uri, string) instead.")]
public Uri (Uri baseUri, string? relativeUri, bool dontEscape);
[System.Obsolete("The constructor has been deprecated. Please new Uri(Uri, string). The dontEscape parameter is deprecated and is always false. http://go.microsoft.com/fwlink/?linkid=14202")]
public Uri (Uri baseUri, string relativeUri, bool dontEscape);
public Uri (Uri baseUri, string relativeUri, bool dontEscape);
[System.Obsolete("The constructor has been deprecated. Please new Uri(Uri, string). The dontEscape parameter is deprecated and is always false. https://go.microsoft.com/fwlink/?linkid=14202")]
public Uri (Uri baseUri, string relativeUri, bool dontEscape);
[<System.Obsolete("The constructor has been deprecated. Please new Uri(Uri, string). The dontEscape parameter is deprecated and is always false. https://go.microsoft.com/fwlink/?linkid=14202")>]
new Uri : Uri * string * bool -> Uri
[<System.Obsolete("This constructor has been deprecated; the dontEscape parameter is always false. Use Uri(Uri, string) instead.")>]
new Uri : Uri * string * bool -> Uri
[<System.Obsolete("The constructor has been deprecated. Please new Uri(Uri, string). The dontEscape parameter is deprecated and is always false. http://go.microsoft.com/fwlink/?linkid=14202")>]
new Uri : Uri * string * bool -> Uri
new Uri : Uri * string * bool -> Uri
Public Sub New (baseUri As Uri, relativeUri As String, dontEscape As Boolean)

參數

baseUri
Uri

基底 URI。

relativeUri
String

要新增至基底 URI 的相對 URI。

dontEscape
Boolean

如果完全逸出 baseUrirelativeUritrue;否則,false

屬性

例外狀況

baseUri null

baseUri 不是絕對 Uri 實例。

結合 baseUrirelativeUri 所形成的 URI 是空的,或只包含空格。

-或-

結合 baseUrirelativeUri 所形成之 URI 中指定的配置無效。

-或-

結合 baseUrirelativeUri 所形成的 URI 包含太多斜線。

-或-

結合 baseUrirelativeUri 所形成之 URI 中指定的密碼無效。

-或-

結合 baseUrirelativeUri 所形成之 URI 中指定的主機名無效。

-或-

結合 baseUrirelativeUri 所形成之 URI 中指定的檔名無效。

-或-

結合 baseUrirelativeUri 所形成之 URI 中指定的使用者名稱無效。

-或-

結合 baseUrirelativeUri 所形成之 URI 中指定的主機或授權單位名稱,無法以反斜杠終止。

-或-

結合 baseUrirelativeUri 所形成之 URI 中指定的埠號碼無效或無法剖析。

-或-

結合 baseUrirelativeUri 所形成的 URI 長度超過 65519 個字元。

-或-

結合 baseUrirelativeUri 所形成之 URI 中指定的配置長度超過 1023 個字元。

-或-

結合 baseUrirelativeUri所形成之 URI 中有無效的字元序列。

-或-

baseUri 中指定的 MS-DOS 路徑必須以 c:\\開頭。

範例

下列範例會結合相對 URI http://www.contoso.comHello%20World.htm,以形成絕對 URI,以建立 Uri 類別的新實例。

Uri^ baseUri = gcnew Uri( "http://www.contoso.com/" );
Uri^ myUri = gcnew Uri( baseUri,"Hello%20World.htm",false );
Uri baseUri = new Uri("http://www.contoso.com");
Uri myUri = new Uri(baseUri, "Hello%20World.htm",false);
let baseUri = Uri "http://www.contoso.com"
let myUri = Uri(baseUri, "Hello%20World.htm", false)
Dim baseUri As New Uri("http://www.contoso.com")
Dim myUri As New Uri(baseUri, "Hello%20World.htm", False)

備註

此建構函式會結合 baseUrirelativeUri來建立 Uri 實例。 如果傳入 relativeUri 的 URI 是絕對 URI(包含配置、主機名和選擇性埠號碼),則只會使用 relativeUri建立 Uri 實例。

dontEscape 參數會控制保留字元是否轉譯成逸出序列。 只有當您確定 URI 中的所有保留字元都已逸出時,才應該將此參數設定為 true。 將尚未完全逸出之 URI 的值設定為 true 可能會導致非預期的行為。 強烈建議您一律將此參數設定為 false。 如果 dontEscape 設定為 false,建構函式會藉由檢查所有出現的百分比 (%) 後面接著有效的逸出序列,以逸出任何保留字元。 如果後百分比的字元序列無效,則百分比會由 %25取代。

此建構函式不會確保 Uri 參考可存取的資源。

給呼叫者的注意事項

由於安全性考慮,您的應用程式不應該使用來自不受信任來源的 URI 字串呼叫此建構函式,並將 dontEscape 設定為 true。 或者,您可以在呼叫這個建構函式之前呼叫 IsWellFormedOriginalString() 方法,檢查 URI 字串是否有效。

適用於