URI构造函数为什么要从baseUri参数中删除部分路径?

时间:2018-11-13 17:08:05

标签: c# uri

public class Program
{
    public static void Main()
    {
        Uri baseUri = new Uri("http://localhost:7777/BasePath/");
        Uri uri = new Uri(baseUri, "/controller");
        Console.WriteLine(uri);
    }
}

从uri中清除/ BasePath的行为是故意的,最终结果是http://localhost:7777/controller

1 个答案:

答案 0 :(得分:0)

我不得不深入研究documentation for the constructor you're calling

public Uri (Uri baseUri, string relativeUri);

  

另外,如果relativeUri以斜杠开头,则它将替换baseUri的任何相关部分。

这是预期的行为。如果您指定以斜杠开头的相对路径,则假定相对路径为 entire 相对路径,因此它将丢弃baseUri中已经包含的所有相对路径。