Ist es möglich, mit System.Uri eine URL mit einer leeren Pfadkomponente darzustellen? Jedes Mal, wennUri mit leerem Pfad
Ich schaffe
new Uri("http://example.com")
.Net (4) auf das Anhängen eines Schrägstrich zu bestehen scheint, wodurch eine andere URL zu erstellen. Mit anderen Worten,
new Uri("http://example.com").ToString()
returns "http://example.com/" und
new Uri("http://example.com").Equals(new Uri("http://example.com/")) == true
Kann dieses gebrochene Verhalten (gemäß RFC 3986) werden unterdrückt oder muss ich meine eigene Klasse rollen?
Update:
Sieht aus wie ich dies in Abschnitt 6.2.3 verpasst:
Im Allgemeinen ist eine URI, die die generische Syntax für Behörde verwendet, um mit einem
leeren Pfad sollte normalisiert werden zu einem Pfad von "/".
Die Formulierung zeigt an, dass dies optional ist. So bleibt die Frage: Kann Uri dazu gebracht werden, dies NICHT zu tun?
http://en.wikipedia.org/wiki/URL_normalization "Für HTTP- und HTTPS-URLs können die folgenden in RFC 3986 aufgelisteten Normalisierungen zu entsprechenden URLs führen, die jedoch nicht von den Standards garantiert werden: ** Hinzufügen von Trailing/** Verzeichnisse sind mit einem nachgestellten Schrägstrich gekennzeichnet und sollten in den URLs " –
@TimSchmelter Right" enthalten sein, damit .Net eine "Normalisierung [s] anwendet, die normalerweise die Semantik bewahrt". Was bedeutet, dass es nicht immer korrekt ist, und in meinem Fall ist es absolut falsch. Die Frage ist: Kann es deaktiviert werden? – arbitrix
@arbitrix Können Sie erklären, warum es Ihnen wichtig ist? Warum ist es "tot falsch"? – svick