2010-11-18 20 views

答えて

2

さて、あなたはあなたのベースURIは、/文字で終わることを確認する必要があります!

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

を返すための統一された方法があり、最後のスラッシュは非常に重要であると思われます。最後のスラッシュは非常に重要です。 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'を返すことを意味しました。私はあなたがそれが* 'ヌル'である場合、それを返すと思います:) –