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)
- Source:
- Uri.cs
- Source:
- Uri.cs
- Source:
- 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设置为 Absolute的UriKind构造函数。
string
如果传递给构造函数的参数是相对 URI,则此构造函数将引发 UriFormatException。
适用于
Uri(SerializationInfo, StreamingContext)
- Source:
- Uri.cs
- Source:
- Uri.cs
- Source:
- 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)
- Source:
- Uri.cs
- Source:
- Uri.cs
- Source:
- 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)
- Source:
- Uri.cs
- Source:
- Uri.cs
- Source:
- 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)
- Source:
- Uri.cs
- Source:
- Uri.cs
- Source:
- 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,而 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)
- Source:
- Uri.cs
- Source:
- Uri.cs
- Source:
- 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 中存在无效字符序列。
- 或 -
中指定的 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/
) )终止相对部分(如果 的相对部分baseUri
要在构造Uri中保留)。
此外,如果 relativeUri
以斜杠开头,则它将替换 的任何相对部分 baseUri
此构造函数不确保 Uri 引用可访问的资源。
适用于
Uri(Uri, Uri)
- Source:
- Uri.cs
- Source:
- Uri.cs
- Source:
- 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 中存在无效字符序列。
- 或 -
中指定的 uriString
MS-DOS 路径必须以 c:\\ 开头。
示例
此示例创建一个绝对 Uri 实例 absoluteUri
和一个相对 Uri 实例 relativeUri
。 然后,combinedUri
从这两个实例创建一个新Uri实例 。
// 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/
) )终止相对部分(如果 的相对部分baseUri
要在构造Uri中保留)。
此外,如果 relativeUri
以斜杠开头,则它将替换 的任何相对部分 baseUri
此构造函数不确保 Uri 引用可访问的资源。
适用于
Uri(Uri, String, Boolean)
- Source:
- Uri.cs
- Source:
- Uri.cs
- Source:
- 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,初始化 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 引用可访问的资源。
调用方说明
出于安全考虑,应用程序不应使用来自不受信任源且 dontEscape
设置为 true
的 URI 字符串调用此构造函数。 或者,可以在调用此构造函数之前通过调用 IsWellFormedOriginalString() 方法检查 URI 字符串的有效性。
适用于
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈