.NET Framework Uri类实际内容具体讲解

开发 后端
.NET Framework Uri类是Intranet 或 Internet 上可由应用程序使用的资源的一种简洁表示形式。我们可以在这篇文章中学到许多其中的基本知识。

大家通过对.NET Framework的学习,可能会对其中的类库方面的知识比较头疼。因为其包含的内容相当广泛,想要很好的掌握是比较困难的。提供统一资源标识符 (URI) 的对象表示形式和对.NET Framework Uri类各部分的轻松访问。 #t#

命名空间:System

程序集:System(在 system.dll 中)

.NET Framework Uri类语法:C#

  1. [SerializableAttribute]   
  2. public class Uri : ISerializable 

备注

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

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

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

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

将.NET Framework Uri类方案转换为小写。

将主机名转换为小写。

如果主机名为 IPv6 地址,则使用规范化 IPv6 地址。ScopeId 和其他可选的 IPv6 数据将被移除

移除默认端口号和空端口号。

通过压缩 /./、/../、// 等序列(包括转义表示形式),规范化分层 URI 的路径。

对于分层 URI,如果主机未以正斜杠 (/) 结尾,则添加一个正斜杠。

URI 中的任何保留字符都要根据 RFC 2396 进行转义。

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

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

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

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

责任编辑:曹凯 来源: 博客园
相关推荐

2010-01-06 17:20:38

.Net Framew

2010-01-06 10:43:49

.NET Framew

2010-01-05 16:10:21

.NET Framew

2010-01-06 19:18:22

.NET Framew

2010-01-06 18:33:56

.Net Framew

2010-01-05 09:35:07

.Net Framew

2010-01-06 16:45:42

.Net Framew

2010-01-06 16:33:50

.Net Framew

2010-01-06 18:13:58

.NET Framew

2010-01-05 17:16:28

.NET Framew

2010-01-05 17:39:10

.NET Framew

2010-01-06 19:38:16

.NET Framew

2010-01-07 18:22:40

VB.NET声音播放

2010-01-11 10:44:47

VB.NET多窗体

2010-01-05 16:15:05

.NET Framew

2010-01-06 13:32:30

.NET Framew

2010-01-05 15:43:13

.NET Framew

2009-12-31 10:43:48

Silverlight

2010-01-08 18:37:08

VB.NET显示图片

2010-01-11 10:19:18

VB.NET启动外部程
点赞
收藏

51CTO技术栈公众号