Как вы проверяете правильность строки 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
Update/Ответ
Конструктор Uri по умолчанию использует добрый Абсолют. Это вызвало несоответствие, когда я попытался использовать Uri.TryCreate и конструктор. Вы получите ожидаемый результат, если вы согласитесь с UriKind как для конструктора, так и для TryCreate.
Спасибо,