Combiner relative baseUri avec chemin relatif

Je suis à la recherche d'un moyen propre à combiner une relative Uri de base avec un autre chemin d'accès relatif. J'ai essayé ce qui suit, mais Uri(Uri, string) et UriBuilder(Uri) besoin Uri absolus (en jetant InvalidOperationException: Cette opération n'est pas prise en charge pour un URI relatif).

//where Settings.Default.ImagesPath is "~/path/to/images"
//attempt 1
_imagePath = new Uri(Settings.Default.ImagesPath, image);

//attempt 2
UriBuilder uriBuilder = new UriBuilder(Settings.Default.ImagesPath);
uriBuilder.Path += image;
_imagePath = uriBuilder.Uri;

Je ne veux pas faire tout moche de manipulation de chaîne de assurez-vous que le chemin d'accès de base se termine par une barre oblique, etc.

OriginalL'auteur jrummell | 2011-02-07