Я столкнулся с интересной ситуацией, когда я получаю метод NRE от Uri.TryCreate, когда он должен возвращать false.
Вы можете воспроизвести проблему, как показано ниже:
Uri url;
if (Uri.TryCreate("http:Ç", UriKind.RelativeOrAbsolute, out url))
{
Console.WriteLine("success");
}
Я думаю, что это не удается во время разбора, но когда я пытаюсь "http:A", например, он возвращает true и анализирует его как относительный URL. Даже если сбой при анализе, он должен просто вернуть false, насколько я понимаю, что может быть проблемой здесь? Это похоже на ошибку в документации по реализации, которая не упоминает об исключении этого метода.
Ошибка возникает в .NET 4.6.1, но не 4.0