У меня есть полный URL-адрес, например: A: <a href="http://www.domain.com/aaa/bbb/ccc/ddd/eee.ext" rel="nofollow">http://www.domain.com/aaa/bbb/ccc/ddd/eee.ext</a>.
A: <a href="http://www.domain.com/aaa/bbb/ccc/ddd/eee.ext" rel="nofollow">http://www.domain.com/aaa/bbb/ccc/ddd/eee.ext</a>
У меня есть относительный URL, например: B: ../../fff.ext
B: ../../fff.ext
Я ищу самый простой способ в .NET C # объединить эти два URL и получить: C: <a href="http://www.domain.com/aaa/bbb/fff.ext" rel="nofollow">http://www.domain.com/aaa/bbb/fff.ext</a>
C: <a href="http://www.domain.com/aaa/bbb/fff.ext" rel="nofollow">http://www.domain.com/aaa/bbb/fff.ext</a>
Это похоже на то, что делают браузеры: вы просматриваете URL-адрес A, затем HTML-код страницы имеет гиперссылку как B, результирующий URL-адрес - C.
Вам, вероятно, повезет больше, если вы найдете "PathCanonicalize".
Также, с моими выводами, один из перегруженных Uri конструкторов может справиться с этим:
Uri combined = new Uri( new Uri("http://www.domain.com/aaa/bbb/ccc/ddd/eee.ext", UriKind.Absolute), "../../fff.ext" );
Доказательство в пудинге