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 类的新实例,并对字符转义进行显式控制。 |
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]”。
例外
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设置为 Absolute的UriKind构造函数。 string
如果传递给构造函数的参数是相对 URI,则此构造函数将引发 UriFormatException。
适用于
Uri(SerializationInfo, StreamingContext)
注意
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)
注意
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 和其他 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 初始化 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,而 uriKind
为 Absolute。
or
uriString
包含绝对 URI,而 uriKind
为 Relative。
or
uriString
为空。
- 或 -
uriString
中指定的方案格式不正确。 请参阅 CheckSchemeName(String)。
- 或 -
uriString
包含过多斜杠。
- 或 -
uriString
中指定的密码无效。
- 或 -
uriString
中指定的主机名无效。
- 或 -
uriString
中指定的文件名无效。
- 或 -
uriString
中指定的用户名无效。
- 或 -
uriString
中指定的主机名或证书颁发机构名称不能以反斜杠结尾。
- 或 -
uriString
中指定的端口号无效或无法分析。
- 或 -
uriString
的长度超过 65519 个字符。
- 或 -
uriString
中指定的方案的长度超过 1023 个字符。
- 或 -
uriString
中存在无效的字符序列。
- 或 -
中指定的 uriString
MS-DOS 路径必须以 c:\\ 开头。
注解
相对 URI 和绝对 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。
例外
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 中存在无效字符序列。
- 或 -
中指定的 uriString
MS-DOS 路径必须以 c:\\开头。
示例
下面的示例通过组合相对 URI 和 来创建 类的新实例Uri,以形成绝对 URI http://www.contoso.com/catalog/shownew.htm
。catalog/shownew.htm
http://www.contoso.com
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
) ),则必须使用斜杠( (如 /api/
) )终止相对部分(如果要在构造Uri中保留 的baseUri
相对部分)。
此外,如果 relativeUri
以斜杠开头,则它将替换 的任何相对部分 baseUri
此构造函数不确保 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 实例。
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 中存在无效字符序列。
- 或 -
中指定的 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实例 baseUri
组合来创建一个新Uri实例relativeUri
。 如果 relativeUri
是包含方案、主机名和端口号 (的绝对 Uri 实例) , Uri 则仅 relativeUri
使用 创建实例。
baseUri
如果 具有 (相对部分(如 /api
) ),则必须使用斜杠( (如 /api/
) )终止相对部分(如果要在构造Uri中保留 的baseUri
相对部分)。
此外,如果 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,初始化 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 引用可访问的资源。
调用方说明
出于安全考虑,应用程序不应使用来自不受信任源且设置为 true
的 dontEscape
URI 字符串调用此构造函数。 或者,可以在调用此构造函数之前通过调用 IsWellFormedOriginalString() 方法来检查 URI 字符串的有效性。
适用于
反馈
https://aka.ms/ContentUserFeedback。
即将推出:在整个 2024 年,我们将逐步取消以“GitHub 问题”作为内容的反馈机制,并将其替换为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈