gpt4 book ai didi

c# - Uri 构造函数 .NET Framework Bug?

转载 作者:行者123 更新时间:2023-11-30 14:16:11 25 4
gpt4 key购买 nike

为什么 thirdRelativeUri 失败了?这是 .NET 错误吗?似乎在 4.0 中也没有修复。

var googleU = new Uri("http://www.google.com");
var secondRelativeUri = new Uri(googleU,"//test.htm"); // doesn't fail
var thirdRelativeUri = new Uri(googleU,"///test.htm"); // fails - Invalid URI: The hostname could not be parsed.

更新:

@dariom 指出这是因为 .NET 中的协议(protocol)相对 URL 处理是有意义的,但是这对我来说仍然有问题:

var thirdRelativeUri = new Uri("///test.htm",UriKind.Relative); // works as expected
var newUri = new Uri(googleU,thirdRelativeUri); //Fails, same error even though it's a relative URI

即使第二个 Uri 是 Relative

也会失败

最佳答案

文件 uri 方案 (RFC 1738) file://[host]/path 表明 host 是可选的。///test.html 表示“由于这通常用于本地文件,因此来自 RFC 1738 的主机通常为空,导致起始三元组/。(ref)

///test.htm 更改为 file:///test.htm,URI 构造函数将正确解析它。它的 AbsolutePath 将是 /test.html

希望这对您有所帮助。

关于c# - Uri 构造函数 .NET Framework Bug?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8111566/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com