Uri 建構函式
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
初始化 Uri 類別的新執行個體。
多載
Uri(String) |
使用指定的 URI,初始化 Uri 類別的新執行個體。 |
Uri(SerializationInfo, StreamingContext) |
已淘汰.
初始化 Uri 類別的新執行個體,這個執行個體是來自 SerializationInfo 和 StreamingContext 類別的指定執行個體。 |
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
。
注意:在適用於 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設定為 Absolute的UriKind建構函式。
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.
初始化 Uri 類別的新執行個體,這個執行個體是來自 SerializationInfo 和 StreamingContext 類別的指定執行個體。
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:\\ 開頭。
備註
這個建構函式會 ISerializable 實作 類別的 Uri 介面。
另請參閱
適用於
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 建立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.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
。
注意:在適用於 Microsoft Store 的 .NET 應用程式或可攜式類別庫中,請改為捕捉基底類別例外狀況 FormatException。
uriString
包含相對 URI,且 uriKind
為 Absolute。
或
uriString
包含絕對 URI,且 uriKind
為 Relative。
或
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 執行個體。
注意:在適用於 Microsoft Store 的 .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 中有無效的字元順序。
-或-
中指定的 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 藉由結合 baseUri
和 relativeUri
來建立實例。 如果 relativeUri
是包含配置、主機名和選擇性埠) 號碼的絕對 URI (,則 Uri 只會 relativeUri
使用 建立 實例。
baseUri
如果的相對部分 (如 /api
) ,則如果 的相對部分baseUri
要保留在建構Uri中,則必須以斜線終止, (例如 /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 執行個體。
注意:在適用於 Microsoft Store 的 .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 中有無效的字元順序。
-或-
中指定的 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實例與相對Uri實例結合,以建立新的Uri實例relativeUri
baseUri
。 如果 relativeUri
是絕對 Uri 實例 (包含配置、主機名,以及選擇性的埠號碼) ,則 Uri 只會 relativeUri
使用 建立實例。
baseUri
如果的相對部分 (如 /api
) ,則如果 的相對部分baseUri
要保留在建構Uri中,則必須以斜線終止, (例如 /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
如果 uriString
已完全逸出,即為 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 中有無效的字元順序。
-或-
中指定的 uriString
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, (包含配置、主機名,以及選擇性的埠號碼) ,則 Uri 只會 relativeUri
使用 建立 實例。
參數 dontEscape
可控制是否將保留字元轉譯成逸出序列。 只有當您確定 URI 中的所有保留字元都已逸出時,才應該將此參數設定 true
為 。 針對尚未完全逸出之 URI 將 值 true
設定為,可能會導致非預期的行為。 強烈建議您一律將此參數設定為 false
。 如果 dontEscape
設定為 false
,則建構函式會檢查所有出現的百分比 (%) 後面接著有效的逸出序列,以逸出任何保留字元。 如果百分比後面的字元序列無效,則百分比會由 %25 取代。
這個建構函式不會確保 Uri 參考可存取的資源。
給呼叫者的注意事項
基於安全性考慮,您的應用程式不應該使用來自不受信任來源的 URI 字串呼叫此建構函式,並將 dontEscape
設為 true
。 或者,您可以在呼叫這個建構函式之前呼叫 方法, IsWellFormedOriginalString() 以檢查 URI 字串是否有效。
適用於
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應