Я недавно просматривал эту SO-ветку: Path.Combine для URL-адресов? и подумал, что, возможно, я мог бы создать что-то вроде Path.Combine. Итак, я написал:
private string combineUrlParts(params string[] urlParts)
{
var myUrl = new Uri(urlParts[0]);
for (int x = 1; x < urlParts.Length; x++)
{
if (!Uri.TryCreate(myUrl, urlParts[x], out myUrl))
{
// Log failure
}
}
return myUrl.ToString();
}
Идея состоит в том, чтобы перечислить baseUrl ("http://someurl.com/"), путь (" / company / 5 / ") и другую часть (" /Financials/index.aspx ") и волшебным образом объединить все это.
Этот метод почти работает. В первый раз через цикл он отлично сочетает базовый URL и первый путь. Но во второй раз через цикл Uri.TryCreate просто перезаписывает путь второй частью, что приводит к:
http://someurl.com/Financials/index.aspx
вместо того, что я ожидал:
http://someurl.com/company/5/Financials/index.aspx
Есть идеи, что здесь происходит?