Uri(Uri,String)构造函数无法正常工作

本文关键字:Uri 常工作 工作 构造函数 String | 更新日期: 2023-09-27 18:28:39

这是我的代码的一部分:

Uri branches = new Uri(@"https://127.0.0.1:8443/svn/CXB1/Validation/branches");
Uri testBranch = new Uri(branches, "test");

我预计testBranches将是https://127.0.0.1:8443/svn/CXB1/Validation/branches/test,但它是https://127.0.0.1:8443/svn/CXB1/Validation/test。我不明白为什么Uri(Uri,string)构造函数会吃掉路径的最后一部分。

Uri(Uri,String)构造函数无法正常工作

在分支后添加斜线

  Uri branches = new Uri(@"https://127.0.0.1:8443/svn/CXB1/Validation/branches/");
  Uri testBranch = new Uri(branches, "test");

您看到的行为是正确的,因为如果您想更改文件名,替换最后一部分是个好主意。

我会在第一部分的末尾加上反斜杠。然后很明显,这是一个目录,否则它可能被解释为一个文件。

Uri branches = new Uri(@"https://127.0.0.1:8443/svn/CXB1/Validation/branches/");
Uri testBranch = new Uri(branches, "test");
Console.WriteLine(testBranch);

将得到以下输出:

 https://127.0.0.1:8443/svn/CXB1/Validation/branches/test

这是预期的行为。

如果在浏览器中,您所在的页面的完整URI为https://127.0.0.1:8443/svn/CXB1/Validation/branches,并且在该页面上,您单击了一个href为test的链接,则会被带到https://127.0.0.1:8443/svn/CXB1/Validation/test。这就是相对URI与基本URI的组合方式。

另一方面,如果第一个URI以/结尾,那么它将如您所期望的那样工作。