Uri构造函数在没有UriKind的情况下抛出相对路径异常

时间:2018-12-16 14:56:01

标签: c# .net uri

为什么

 new Uri("temp/file.txt")

引发以下异常

  

UriFormatException:无效的URI:无法确定URI的格式。

而不是创建相对的Uri?它不知道格式,所以为什么需要指定UriKind.Relative参数?当我这样做时,它仍然不知道格式。这是违反直觉的。

是否有一种无需使用Uri参数就可以创建相对UriKind的方法?必须这样做会不确定Uri类的用途,因为现在如果不每次都自己检查string --> Uri的情况下,我就无法将其用于隐式 string会话。

1 个答案:

答案 0 :(得分:2)

您可能需要通过将RelativeOrAbsolute指定为UriKind来创建它:

var uri = new Uri("temp/file.txt", UriKind.RelativeOrAbsolute);