在單聲道(2.6.7)上使用MakeRelativeUri時,我看到了一些奇怪的(對我來說)行爲。看看下面的例子:Uri.MakeRelativeUri在單聲道上的行爲
var uri1 = new Uri("/somepath/someothersubpath/");
var uri2 = new Uri("/somepath/img/someimg.jpg");
var uri3 = uri1.MakeRelativeUri(uri2);
Console.WriteLine(uri3.OriginalString);
我期望這個輸出"../img/someimg.jpg"
,但我得到"img/someimg.jpg"
一位朋友使用的是Windows/Visual Studio中他得到我預期的結果,如果附加一個額外的斜槓證實字符串的開頭(我也試過這個,並且沒有用)。
我不確定這是否是單聲道Uri類的問題,或者我對URI類應該如何工作的理解是有缺陷的,但是可以幫助我達到預期輸出的任何建議都會很大讚賞。
感謝,
亞歷
有趣。這似乎解決了我的問題,但它看起來好像它可能是單聲道中的URI類的問題。感謝您的幫助,希望我們能夠找出最終的原因 – AlexCuse 2010-09-11 22:24:18
這是因爲'/ somepath/img/someimg.jpg'是'/ somepath/someothersubpath'中的'img/someimg.jpg'看法。但是爲這條路徑添加一個尾部的斜線使它成爲'/ somepath/someothersubpath /'應該意味着我們在那個目錄內,但是看起來'Mono'忽略了這個,也許是一個錯誤。但是,在路徑的末尾添加新組件會迫使它更改爲_deeper的觀點_ :) – aularon 2010-09-11 22:24:52
是的,它確實看起來像mono是忽略它。添加另一個斜線也可以,也許它只是修剪一個結尾斜線? – AlexCuse 2010-09-11 22:27:22