.NET Framework 类库: Uri类

提供统一资源标识符 (URI) 的对象表示形式和对 URI 各部分的轻松访问。

命名空间:System
程序集:System(在 system.dll 中)

语法:C#
1[SerializableAttribute] 
2public class Uri : ISerializable
备注 

URI 是 Intranet 或 Internet 上可由应用程序使用的资源的一种简洁表示形式。Uri 类定义了属性和方法来处理 URI,包括分析、比较和组合。Uri 类属性是只读的;若要创建可修改的对象,请使用 UriBuilder 类。

相对 URI(例如“/new/index.htm”)必须相对于基 URI 展开,这样才是绝对的。提供了 MakeRelative 方法在必要时将绝对 URI 转换为相对 URI。

如果 URI 字符串是格式良好的 URI 并且包括方案标识符,Uri 构造函数将不会转义 URI 字符串。

Uri 属性用转义编码返回规范化数据表示形式,任何 Unicode 值大于 127 的字符都会被替换为等效的十六进制数。为使 URI 具有规范化格式,Uri 构造函数执行以下步骤:

    将 URI 方案转换为小写。
    将主机名转换为小写。 如果主机名为 IPv6 地址,则使用规范化 IPv6 地址。ScopeId 和其他可选的 IPv6 数据将被移除 移除默认端口号和空端口号。 通过压缩 /./、/../、// 等序列(包括转义表示形式),规范化分层 URI 的路径。

对于分层 URI,如果主机未以正斜杠 (/) 结尾,则添加一个正斜杠。
URI 中的任何保留字符都要根据 RFC 2396 进行转义。

使用 ToString 方法,可以将 Uri 类的内容从转义编码的 URI 引用转换为可读的 URI 引用。请注意,在 ToString 方法的输出中,某些保留字符可能仍会被转义。这是为了支持利用 ToString 返回的值明确无误地重新构造 URI。

某些 URI 会包括一个片段标识符或一个查询,或同时包含这两项内容。片段标识符是跟在数字符号 (#) 之后的任意文本(不包括数字符号本身);段落文本储存在 Fragment 属性中。查询信息是 URI 中跟在问号 (?) 后的任何文本;查询文本存储在 Query 属性中。
        

在 .NET Framework 1.1 版中,如果指定给构造函数的字符串包含未知的方案和“c:\”,则 URI 类会在冒号后面插入“//”。例如,URI xyz:c:\abc 会转换为 xyz://c:/abc。在 .NET Framework 2.0 版中已经移除这一行为,示例字符串会转换为 xyz:c:/abc

        
注意

URI 类支持使用以下格式的 IP 地址:四组表示法的 IPv4 协议和冒号分隔的十六进制 IPv6 协议。请记住在 IPv6 地址两边括上方括号,如 http://[::1]。

示例:
C#
1Uri siteUri = new Uri("http://www.contoso.com/");
2 
3WebRequest wr = WebRequest.Create(siteUri);
 继承层次结构
        
System.Object
  System.Uri
原文地址:https://www.cnblogs.com/Dlonghow/p/1232451.html