Je vois un comportement étrange (pour moi quand même) lors de l'utilisation de MakeRelativeUri sur Mono (2.6.7). Prenons l'exemple suivant:Uri.MakeRelativeUri Comportement sur Mono
var uri1 = new Uri("/somepath/someothersubpath/");
var uri2 = new Uri("/somepath/img/someimg.jpg");
var uri3 = uri1.MakeRelativeUri(uri2);
Console.WriteLine(uri3.OriginalString);
Je me attends à la sortie de cette "../img/someimg.jpg"
, mais je reçois "img/someimg.jpg"
Un ami a confirmé en utilisant des fenêtres/visual studio qu'il obtient mon résultat attendu si une barre oblique supplémentaire annexant à le début de la chaîne (j'ai essayé cela aussi, et en vain). Je ne suis pas sûr si c'est un problème avec la classe Uri en mono, ou si ma compréhension de la façon dont la classe URI devrait fonctionner est erronée, mais tous les conseils qui peuvent m'aider à obtenir la sortie attendue seraient grandement apprécié.
Merci,
Alex
Intéressant. Cela semble résoudre mon problème, mais il semble que ce soit un problème avec la classe URI en mono. Merci pour l'aide, j'espère que nous serons en mesure de comprendre la cause de cela finalement – AlexCuse
C'est parce que '/ somepath/img/someimg.jpg' est' img/someimg.jpg' du point '/ somepath/someothersubpath' de vue. Mais ajouter une barre oblique à ce chemin en faisant '/ somepath/someothersubpath /' devrait signifier que nous sommes à l'intérieur de ce répertoire, mais il semble que 'Mono' l'ignore, peut-être un bug. Cependant, l'ajout d'un nouveau composant à la fin du chemin l'oblige à changer de point de vue _deeper :) – aularon
Oui, il semble que mono l'ignore. Ajout d'une autre barre oblique fonctionne aussi, peut-être que c'est juste une barre oblique? – AlexCuse