追加与的System.Uri多个段(Appending multiple segments with

2019-09-16 13:06发布

var baseUri = new Uri("http://localhost/");
var uri1 = new Uri(baseUri, "1");
var uri2 = new Uri(uri1, "2");   

出乎意料的是, uri2是HTTP://本地主机/ 2 。 我怎么会追加到uri1所以它的http://本地主机/ 1/2这一翻译? 是否Uri做到这一点,或者我需要退回到字符串? 顺便说一句,我已经尝试添加前/后斜线几乎无处不在。

Answer 1:

“1”和“2”是一个URL的“文件名部分”。 如果你把“1”看起来更像目录路径,将工作确定“1 /”:

var baseUri = new Uri("http://localhost/");
var uri1 = new Uri(baseUri, "1/");
var uri2 = new Uri(uri1, "2"); 

注:“文件名部分”是不是一个真正的来看,由于只有网址有“路径”和“查询”成分,但路径的通常最后一块被视为文件名:“/foo/bar/file.txt”。

当你把2路要与第二个,以取代第一路径的大约尾部。 在你的情况下,最终有两个正好“文件名”段:“/ 1”和“2”(如果你在合并放像“/myFile.txt”和“NewFile.txt”真正的价值会更容易看到为什么它的行为这样)。



文章来源: Appending multiple segments with System.Uri
标签: c# uri