首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么.NET有一个UriBuilder而不是一个UrlBuilder?

问为什么.NET有一个UriBuilder而不是一个UrlBuilder?
EN

Stack Overflow用户
提问于 2012-07-09 10:07:08
回答 2查看 994关注 0票数 8

好的,在消化了URL和URI之间的this one差异这样的优秀答案之后,我想我现在理解了两者之间的区别。

我现在不明白为什么.NET框架有一个UriBuilder类,据我所知,它只在URI上工作,URI是资源定位器,因此应该正确地称为UrlBuilder。

有人能给我一个例子,说明UriBuilder被用来构建不是资源定位器的URI吗?还是在设计.NET框架时做出这个决定的一些理由?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-12 01:24:57

考虑一下,UriBuilder比URL更强大和更广泛。因为每个URL都是一个URI,所以UriBuilder本身就是一个UriBuilder。

因此,基本上问题是什么时候可以对非URI使用UriBuilder。嗯,我想最好的例子是URN (因为URL和URN基本上是定位符和名称--这是URI的两个分类)。例如,可以使用URN来构建uuid (即urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66)或ISBN (即ISBN 0-486-27557-4)。这些URN不包含像URL那样指向资源的位置信息,它们只包含名称或ids。UriBuilder不仅能够构建URL(指向资源),而且还能够构建URN。如果您查看Uri.Scheme property,您将在Uri的可能方案列表中看到uuid。

而且,.NET在技术上确实有一个UrlBuilder class。

票数 14
EN

Stack Overflow用户

发布于 2012-07-18 14:25:41

代码语言:javascript
复制
Uri _uri = new Uri(URL);
            string tURL = _uri.Scheme + "://" + _uri.Host + _uri.LocalPath;
            Console.WriteLine("Before: " + tURL);
            uri = new UriBuilder(tURL);
            Console.WriteLine("After:  " + uri.Uri.ToString());
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11392924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档