В чем разница между Uri.ToString () и Uri.Абсолютная правда?
как комментарий к вопросу Azure только что, @smarx отметил
Я думаю, что это вообще лучше делать шарик.Ури.Абсолютное превосходство клякса.Ури.ToString ().
есть ли причина для этого? Документация для Uri.AbsoluteUri
отмечает, что он "получает абсолютный URI", Uri.ToString()
"возвращает каноническое строковое представление указанного экземпляра."
4 ответа:
учитывая например:
UriBuilder builder = new UriBuilder("http://somehost/somepath"); builder.Query = "somekey=" + HttpUtility.UrlEncode("some+value"); Uri someUri = builder.Uri;
в этом случае,
Uri.ToString()
возвращает удобочитаемое URL-адресом: http://somehost/somepath?somekey=some + value
Uri.AbsoluteUri
С другой стороны вернет закодированную форму как HttpUtility.UrlEncode вернул его:http://somehost/somepath?somekey=some%2bvalue
дополнительно: если
Uri
это относительныеUri
AbsoluteUri
не будет выполнена,ToString()
нет.Uri uri = new Uri("fuu/bar.xyz", UriKind.Relative); string str1 = uri.ToString(); // "fuu/bar.xyz" string str2 = uri.AbsoluteUri; // InvalidOperationException