Uri.IsWellFormedUriString(String, UriKind) 方法

定义

通过尝试用字符串构造一个 URI 来指示字符串是否为格式良好的,并确保字符串不需要进一步转义。

public:
 static bool IsWellFormedUriString(System::String ^ uriString, UriKind uriKind);
public static bool IsWellFormedUriString (string uriString, UriKind uriKind);
public static bool IsWellFormedUriString (string? uriString, UriKind uriKind);
static member IsWellFormedUriString : string * UriKind -> bool
Public Shared Function IsWellFormedUriString (uriString As String, uriKind As UriKind) As Boolean

参数

uriString
String

用于尝试构造 Uri 的字符串。

uriKind
UriKind

Uri 中的 uriString 的类型。

返回

Boolean

如果该字符串格式正确,则为 true;否则为 false

注解

在版本 4.5 之前的 .NET 版本中,默认情况下,根据 RFC 2396 和 RFC 2732,字符串被视为格式良好。 如果启用了国际资源标识符 (IIS) 或国际化域名 (IDN) 分析,则根据 RFC 3986 和 RFC 3987,该字符串被视为格式良好。

从 .NET 4.5 开始,始终根据 RFC 3986 和 RFC 3987(无论是否启用 IRI 或 IDN)将始终被视为格式良好的字符串。 但是,请注意,这仅适用于面向 .NET 4.5 或更高版本的应用。 面向 .NET 4.0 的应用调用兼容性代码,并体验旧版 (4.5) 行为。

如果出现以下任一情况,字符串被视为格式不佳,导致该方法返回 false

错误 示例
字符串未正确转义。 http://www.contoso.com/path???/file name
字符串是表示隐式文件的Uri绝对Uri值。 c:\\directory\filename
字符串是缺少路径前斜杠的绝对 URI。 file://c:/directory/filename
即使将反斜杠视为正斜杠,字符串也包含未转义反斜杠 http:\\\host/path/file
字符串表示分层绝对 Uri 值,不包含“://” www.contoso.com/path/file
分析器 Scheme 指示原始字符串的格式不正确。 该示例取决于 URI 的方案。
从 .NET 4.5 开始,具有冒号的相对 URI (':') 在其第一个段中被视为格式不正确。 2013.05.29_14:33:41

有关 IRI 支持的详细信息,请参阅类的 Uri “备注”部分。

适用于

另请参阅