Uri 建構函式

定義

初始化 Uri 類別的新執行個體。

多載

Uri(String)

使用指定的 URI,初始化 Uri 類別的新執行個體。

Uri(SerializationInfo, StreamingContext)

初始化 Uri 類別的新執行個體,這個執行個體是來自 SerializationInfoStreamingContext 類別的指定執行個體。

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,初始化 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]"。

例外狀況

uriStringnull

注意:在適用於 Microsoft Store 的 .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 設定為 AbsoluteUriKind 建構函式。 string如果傳遞至建構函式的參數是相對 URI,這個建構函式會擲回 UriFormatException

適用於

Uri(SerializationInfo, StreamingContext)

初始化 Uri 類別的新執行個體,這個執行個體是來自 SerializationInfoStreamingContext 類別的指定執行個體。

protected:
 Uri(System::Runtime::Serialization::SerializationInfo ^ serializationInfo, System::Runtime::Serialization::StreamingContext streamingContext);
protected Uri (System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext);
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:\\ 開頭。

備註

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

另請參閱

適用於

Uri(String, Boolean)

警告

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

如果 uriString 已完全逸出,即為 true,否則,為 false

屬性

例外狀況

uriStringnull

uriString 是空的,或者只含有空格。

-或-

uriString 中指定的配置無效。

-或-

uriString 包含太多的斜線。

-或-

uriString 中指定的密碼無效。

-或-

uriString 中指定的主機名稱無效。

-或-

uriString 中指定的檔案名稱無效。

-或-

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

-或-

uriString 中指定的主機或授權單位名稱不得使用反斜線終止。

-或-

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

-或-

uriString 的長度超過 65519 個字元。

-或-

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

-或-

uriString 中包含無效的字元順序。

-或-

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

範例

下列範例會 Uri 建立 URI http://www.contoso.com/Hello%20World.htm 的實例。 因為包含的 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 和其他 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,初始化 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 無效。

uriStringnull

注意:在適用於 Microsoft Store 的 .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 和相對 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。

例外狀況

baseUrinull

baseUri 不是絕對 Uri 執行個體。

注意:在適用於 Microsoft Store 的 .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 中有無效的字元順序。

-或-

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

範例

下列範例會結合相對 URI 並 catalog/shownew.htm 形成絕對 URI http://www.contoso.com/catalog/shownew.htm http://www.contoso.com ,以建立 類別的新實例 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())

備註

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

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

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

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

適用於

Uri(Uri, Uri)

根據指定的基底 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

Uri 結合的相對 baseUri 執行個體。

例外狀況

baseUri 不是絕對 Uri 執行個體。

baseUrinull

baseUri 不是絕對 Uri 執行個體。

注意:在適用於 Microsoft Store 的 .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 中有無效的字元順序。

-或-

uriString 中指定的 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 實例 ,以建立新的 Uri 實例 relativeUri 。 如果 relativeUri 是絕對 Uri 實例 (包含配置、主機名稱,以及選擇性的埠號碼) , Uri 則只會 relativeUri 使用 建立實例。

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

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

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

適用於

Uri(Uri, String, Boolean)

警告

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

如果 uriString 已完全逸出,即為 true,否則,為 false

屬性

例外狀況

baseUrinull

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 中有無效的字元順序。

-或-

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

範例

下列範例會結合相對 URI 並 Hello%20World.htm 形成絕對 URI http://www.contoso.com ,以建立 類別的新實例 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)

備註

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

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

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

給呼叫者的注意事項

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

適用於