2013-10-30 16 views
8

Programımda, göreceli bir yolla (ör. /Apps/TestOne/) bir bitiş çizgisine sahip olabilecek veya olmayabilir bir sunucuyu (ör. http://server1.my.corp/) birleştirmem gereken bir koşul var. docs göre, Uri gerekir ... Yedekleme sırasını kaldırmak için System.Uri'yi kullanma

gibi dizileri sıkıştırarak hiyerarşik URI'ler yolunu kanonlaştırır /./, /../, // ...

ne zaman Ben var url = new Uri(server + relativePath) böyle bir şey yapmak, bunu çift yırtmaç aksi http://server1.my.corp//Apps/TestOne/ olacağını almak ve kaldırmak için beklediğiniz (yani // ->/), ancak ToString, AbsolutePath ve çeşitli seçenekler hala gereksiz/yinelenen çizgi gösteriyor. Uri kullanmıyor muyum?

cevap

15

Uri class için kuruculara bir bakın. Kurallı davranışı elde etmek için bir temel Uri ve göreli bir yol belirtmeniz gerekir. Şunun gibi bir şey deneyin:

var server = new Uri("http://server1.my.corp/"); 
var resource = new Uri(server, "/Apps/TestOne/"); 
İlgili konular