我对 .NET 的 Uri 实现有疑问。似乎如果方案是“ftp”,则查询部分不会被解析为查询,而是作为路径的一部分。
以下面的代码为例:
Uri testuri = new Uri("ftp://user:pass@localhost/?passive=true");
Console.WriteLine(testuri.Query); // Outputs an empty string
Console.WriteLine(testuri.AbsolutePath); // Outputs "/%3Fpassive=true"
在我看来,Uri 类错误地将查询部分解析为路径的一部分。但是将方案更改为http,结果符合预期:
Uri testuri = new Uri("http://user:pass@localhost/?passive=true");
Console.WriteLine(testuri.Query); // Outputs "?passive=true"
Console.WriteLine(testuri.AbsolutePath); // Outputs "/"
有没有人对此有解决方案,或者知道可以按预期工作的替代 Uri 类?