2010-11-18 38 views

cevap

2

Eh, temel tanım bir / karakteri ile biter sağlamak gerekir:!

public Uri CombineUris(string baseUri, string relativeUri) 
{ 
    if (!baseUri.EndsWith("/")) { 
     baseUri += "/"; 
    } 
    return new Uri(new Uri(baseUri), relativeUri); 
} 
1

/ sondaki ile kök URI geçmek emin olun her durumda http://www.google.com/foo/test dönmek için birleşik bir yolu yoktur. Son eğik çizgi çok önemlidir. http://www.example.com/foo/bar.html, bar2.html'u düşünün. http://www.example.com/foo/bar2.html'a çözülmelidir.

0
Uri test = new Uri(new Uri(GetSafeURIString("http://www.google.com/test")), "foo"); 



private static string GetSafeURIString(uri) 
{ 
    if(uri == null) 
     return uri; 
    else 
     return uri.EndsWith("/") ? uri : uri + "/"; 
} 
+0

Bu sizin 'uri benziyor = null' koşulu ters çevrilir. –

+0

null! = Uri, C/C++ dünyasında iyi bir uygulama olarak kullanılmıştır. Ancak, C# 'da her zaman bir boole ve dolayısıyla tesadüfi bir görev beklemez. – Ramesh

+0

hayır, demek istediğim, eğer uri değil *. Eğer * * null' ise –

İlgili konular