2010-11-18 8 views

답변

2

글쎄, 당신은 당신의 기본 URI는 / 문자로 끝나는 있는지 확인해야합니다!

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

이 (가) / 후행 루트 URI를 통과해야합니다 모든 경우에 http://www.google.com/foo/test를 반환하는 통일 된 방법이있다. 마지막 슬래시는 매우 중요합니다. http://www.example.com/foo/bar.html, bar2.html을 고려하십시오. 이는 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

그것은 당신의'URI처럼 보인다 = null' 조건은 반전된다. –

+0

null! = uri는 C/C++ 환경에서 우수 사례였습니다. 그러나 C#에서는 항상 부울을 예상하므로 실수로 할당 할 필요가 없습니다. – Ramesh

+0

아니, 나는 당신이'uri '가 아닌'null'이라면 반환하겠다는 뜻이다. 나는 그것이 *'null' 인 경우에 당신이 그것을 돌려주고 싶다고 생각한다. :) –