Объединение двух относительных Uris

Мне нужно объединить два относительных Uris, например ../ mypath / и ] myimage.png для создания ../ mypath / myimage.png . Это не пути к файлам на диске, поэтому Path.Combine не подходит (это относительные пути к ресурсам для веб-страницы). новый Uri генерирует исключение ArgumentOutOfRangeException , потому что базовый URI является относительным (не абсолютным).

Есть ли у меня какие-либо другие варианты, кроме проверки наличия косой черты в конце и последующего объединения путей самостоятельно?

РЕДАКТИРОВАТЬ:

Вот тестовый пример, демонстрирующий, что Path.Combine не будет работать в случае, когда первый URL еще не содержит завершающую косую черту:

// The first case fails with result "../testpath\resource.png"
[TestCase("../testpath", "resource.png", "../testpath/resource.png")] 
[TestCase("../testpath/", "resource.png", "../testpath/resource.png")]
public void TestPathCombine(string path, string resourceName, string expectedResult) {
    string result = Path.Combine(path, resourceName);
    Assert.AreEqual(expectedResult, result);
}
12
задан Lawrence Johnston 8 December 2010 в 18:12
поделиться