Uri 建構函式
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
初始化 Uri 類別的新實例。
多載
| Uri(String) |
使用指定的 URI,初始化 Uri 類別的新實例。 |
| Uri(SerializationInfo, StreamingContext) |
已淘汰.
從 SerializationInfo 和 StreamingContext 類別的指定實例,初始化 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, 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.
從 SerializationInfo 和 StreamingContext 類別的指定實例,初始化 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
如果完全逸出 uriString,true;否則,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)
參數
- 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。
結合 baseUri 和 relativeUri 所形成的 URI 是空的,或只包含空格。
-或-
結合 baseUri 和 relativeUri 所形成之 URI 中指定的配置無效。
-或-
結合 baseUri 和 relativeUri 所形成的 URI 包含太多斜線。
-或-
結合 baseUri 和 relativeUri 所形成之 URI 中指定的密碼無效。
-或-
結合 baseUri 和 relativeUri 所形成之 URI 中指定的主機名無效。
-或-
結合 baseUri 和 relativeUri 所形成之 URI 中指定的檔名無效。
-或-
結合 baseUri 和 relativeUri 所形成之 URI 中指定的使用者名稱無效。
-或-
結合 baseUri 和 relativeUri 所形成之 URI 中指定的主機或授權單位名稱,無法以反斜杠終止。
-或-
結合 baseUri 和 relativeUri 所形成之 URI 中指定的埠號碼無效或無法剖析。
-或-
結合 baseUri 和 relativeUri 所形成的 URI 長度超過 65519 個字元。
-或-
結合 baseUri 和 relativeUri 所形成之 URI 中指定的配置長度超過 1023 個字元。
-或-
結合 baseUri 和 relativeUri所形成之 URI 中有無效的字元序列。
-或-
baseUri 中指定的 MS-DOS 路徑必須以 c:\\開頭。
範例
下列範例會結合相對 URI http://www.contoso.com 和 catalog/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())
備註
這個建構函式會結合 baseUri 和 relativeUri來建立 Uri 實例。 如果 relativeUri 是絕對 URI(包含配置、主機名和選擇性埠號碼),Uri 實例只會使用 relativeUri來建立。
如果 baseUri 有相對部分(例如 /api),則如果建構的 Uri中要保留 baseUri 的相對部分,則必須以斜線終止相對部分(例如 /api/)。
此外,如果 relativeUri 以斜線開頭,則會取代 baseUri 的任何相對部分
此建構函式不會確保 Uri 參考可存取的資源。
適用於
Uri(Uri, Uri)
- 來源:
- Uri.cs
- 來源:
- Uri.cs
- 來源:
- Uri.cs
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 實例。
baseUri
null。
baseUri 不是絕對 Uri 實例。
注意:在適用於 Windows 市集應用程式的 .NET 中, 或 可攜式類別庫,改為攔截基類例外狀況,FormatException。
結合 baseUri 和 relativeUri 所形成的 URI 是空的,或只包含空格。
-或-
結合 baseUri 和 relativeUri 所形成之 URI 中指定的配置無效。
-或-
結合 baseUri 和 relativeUri 所形成的 URI 包含太多斜線。
-或-
結合 baseUri 和 relativeUri 所形成之 URI 中指定的密碼無效。
-或-
結合 baseUri 和 relativeUri 所形成之 URI 中指定的主機名無效。
-或-
結合 baseUri 和 relativeUri 所形成之 URI 中指定的檔名無效。
-或-
結合 baseUri 和 relativeUri 所形成之 URI 中指定的使用者名稱無效。
-或-
結合 baseUri 和 relativeUri 所形成之 URI 中指定的主機或授權單位名稱,無法以反斜杠終止。
-或-
結合 baseUri 和 relativeUri 所形成之 URI 中指定的埠號碼無效或無法剖析。
-或-
結合 baseUri 和 relativeUri 所形成的 URI 長度超過 65519 個字元。
-或-
結合 baseUri 和 relativeUri 所形成之 URI 中指定的配置長度超過 1023 個字元。
-或-
結合 baseUri 和 relativeUri所形成之 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
如果完全逸出 baseUri 和 relativeUri,true;否則,false。
- 屬性
例外狀況
baseUri
null。
baseUri 不是絕對 Uri 實例。
結合 baseUri 和 relativeUri 所形成的 URI 是空的,或只包含空格。
-或-
結合 baseUri 和 relativeUri 所形成之 URI 中指定的配置無效。
-或-
結合 baseUri 和 relativeUri 所形成的 URI 包含太多斜線。
-或-
結合 baseUri 和 relativeUri 所形成之 URI 中指定的密碼無效。
-或-
結合 baseUri 和 relativeUri 所形成之 URI 中指定的主機名無效。
-或-
結合 baseUri 和 relativeUri 所形成之 URI 中指定的檔名無效。
-或-
結合 baseUri 和 relativeUri 所形成之 URI 中指定的使用者名稱無效。
-或-
結合 baseUri 和 relativeUri 所形成之 URI 中指定的主機或授權單位名稱,無法以反斜杠終止。
-或-
結合 baseUri 和 relativeUri 所形成之 URI 中指定的埠號碼無效或無法剖析。
-或-
結合 baseUri 和 relativeUri 所形成的 URI 長度超過 65519 個字元。
-或-
結合 baseUri 和 relativeUri 所形成之 URI 中指定的配置長度超過 1023 個字元。
-或-
結合 baseUri 和 relativeUri所形成之 URI 中有無效的字元序列。
-或-
baseUri 中指定的 MS-DOS 路徑必須以 c:\\開頭。
範例
下列範例會結合相對 URI http://www.contoso.com 和 Hello%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)
備註
此建構函式會結合 baseUri 和 relativeUri來建立 Uri 實例。 如果傳入 relativeUri 的 URI 是絕對 URI(包含配置、主機名和選擇性埠號碼),則只會使用 relativeUri建立 Uri 實例。
dontEscape 參數會控制保留字元是否轉譯成逸出序列。 只有當您確定 URI 中的所有保留字元都已逸出時,才應該將此參數設定為 true。 將尚未完全逸出之 URI 的值設定為 true 可能會導致非預期的行為。 強烈建議您一律將此參數設定為 false。 如果 dontEscape 設定為 false,建構函式會藉由檢查所有出現的百分比 (%) 後面接著有效的逸出序列,以逸出任何保留字元。 如果後百分比的字元序列無效,則百分比會由 %25取代。
此建構函式不會確保 Uri 參考可存取的資源。
給呼叫者的注意事項
由於安全性考慮,您的應用程式不應該使用來自不受信任來源的 URI 字串呼叫此建構函式,並將 dontEscape 設定為 true。 或者,您可以在呼叫這個建構函式之前呼叫 IsWellFormedOriginalString() 方法,檢查 URI 字串是否有效。