2010-11-18 14 views

Odpowiedz

2

Cóż, trzeba upewnić się, że baza URI kończy / charakteru:

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

Upewnij zdać korzeniowy URI ze spływu /. Ostatnie cięcie jest bardzo ważne. Rozważ http://www.example.com/foo/bar.html, bar2.html. Powinien zostać rozwiązany na http://www.example.com/foo/bar2.html.

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

Wygląda swoimi 'uri = stan null' jest odwrócony. –

+0

null! = Uri była dobrą praktyką w świecie C/C++. Ale w języku C#, jeśli zawsze oczekuje wartości boolowskiej, a więc nie przypadkowego przypisania. – Ramesh

+0

Nie, chodzi mi o to, że zwracasz 'uri', jeśli to * nie *' null'. Myślę, że chcesz go zwrócić, jeśli * jest * 'null' :) –

Powiązane problemy