5
如何检查URI字符串是否有效
如何检查uri字符串是否有效(可以将其提供给Uri构造函数)? 到目前为止,我只有以下几种,但出于明显的原因,我宁愿使用一种不太粗暴的方法: Boolean IsValidUri(String uri) { try { new Uri(uri); return true; } catch { return false; } } 我试过了Uri.IsWellFormedUriString,但是它似乎并不喜欢您可以扔给构造函数的所有东西。例如: String test = @"C:\File.txt"; Console.WriteLine("Uri.IsWellFormedUriString says: {0}", Uri.IsWellFormedUriString(test, UriKind.RelativeOrAbsolute)); Console.WriteLine("IsValidUri says: {0}", IsValidUri(test)); 输出将是: Uri.IsWellFormedUriString says: False IsValidUri says: True 更新/回答 默认情况下,Uri构造函数使用种类Absolute。当我尝试使用Uri.TryCreate和构造函数时,这导致了差异。如果为构造函数和TryCreate都匹配UriKind,则可以得到预期的结果。