(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

Uri-Klasse

Stellt eine Objektdarstellung eines URIs (Uniform Resource Identifier) und einfachen Zugriff auf die Teile des URIs bereit.

Namespace:  System
Assembly:  System (in System.dll)

[SerializableAttribute]
[TypeConverterAttribute(typeof(UriTypeConverter))]
public class Uri : ISerializable

Der Uri-Typ macht die folgenden Member verfügbar.

  NameBeschreibung
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsUri(String)Initialisiert eine neue Instanz der Uri-Klasse mit dem angegebenen URI.
Geschützte MethodeUri(SerializationInfo, StreamingContext)Initialisiert eine neue Instanz der Uri-Klasse aus den angegebenen Instanzen der SerializationInfo-Klasse und der StreamingContext-Klasse.
Öffentliche MethodeUnterstützt von XNA FrameworkUri(String, Boolean) Veraltet. Initialisiert eine neue Instanz der Uri-Klasse mit dem angegebenen URI, wobei die Verwendung der Escapezeichen explizit gesteuert werden kann.
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsUri(String, UriKind)Initialisiert eine neue Instanz der Uri-Klasse mit dem angegebenen URI. Mit diesem Konstruktor können Sie angeben, ob die URI-Zeichenfolge ein relativer URI, ein absoluter URI oder unbestimmt ist.
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsUri(Uri, String)Initialisiert eine neue Instanz der Uri-Klasse auf Grundlage des angegebenen Basis-URIs und der relativen URI-Zeichenfolge.
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsUri(Uri, Uri)Initialisiert eine neue Instanz der Uri-Klasse auf Grundlage der Kombination einer angegebenen Uri-Instanz als Basis und einer relativen Uri-Instanz.
Öffentliche MethodeUnterstützt von XNA FrameworkUri(Uri, String, Boolean) Veraltet. Initialisiert eine neue Instanz der Uri-Klasse auf Grundlage des angegebenen Basis-URIs und des angegebenen relativen URIs mit expliziter Steuerung der Escapesequenzen.
Zum Seitenanfang

  NameBeschreibung
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsAbsolutePathRuft den absoluten Pfad des URIs ab.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsAbsoluteUriRuft den absoluten URI ab.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsAuthorityRuft den DNS-Hostnamen (Domain Name System) oder die IP-Adresse und die Anschlussnummer für einen Server ab.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsDnsSafeHostRuft einen Hostnamen ohne Escapezeichen ab, der sicher für die DNS-Auflösung verwendet werden kann.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsFragmentRuft das mit Escapezeichen versehene URI-Fragment ab.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsHostRuft die Hostkomponente dieser Instanz ab.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsHostNameTypeRuft den Typ des im URI angegebenen Hostnamens ab.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsIsAbsoluteUriRuft ab, ob die Uri-Instanz absolut ist.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsIsDefaultPortRuft ab, ob der Portwert im URI der Standardwert für dieses Schema ist.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsIsFileRuft einen Wert ab, der angibt, ob der angegebene Uri ein Datei-URI ist.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsIsLoopbackRuft ab, ob der angegebene Uri auf den lokalen Host verweist.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsIsUncRuft ab, ob der angegebene Uri einen UNC-Pfad (Universal Naming Convention) darstellt.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsLocalPathRuft die Darstellung eines Dateinamens im lokalen Betriebssystem ab.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsOriginalStringRuft die ursprüngliche URI-Zeichenfolge ab, die an den Uri-Konstruktor übergeben wurde.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsPathAndQueryRuft die durch ein Fragezeichen (?) getrennten Werte der AbsolutePath-Eigenschaft und der Query-Eigenschaft ab.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsPortRuft die Anschlussnummer dieses URIs ab.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsQueryRuft im angegebenen URI enthaltene Abfrageinformationen ab.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsSchemeRuft den Namen des Schemas für diesen URI ab.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsSegmentsRuft ein Array mit den Pfadsegmenten ab, aus denen sich der angegebene URI zusammensetzt.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsUserEscapedGibt an, dass die URI-Zeichenfolge vor dem Erstellen der Uri-Instanz vollständig mit Escapezeichen versehen war.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsUserInfoRuft Benutzernamen, Kennwort oder weitere benutzerspezifische Informationen ab, die dem angegebenen URI zugeordnet sind.
Zum Seitenanfang

  NameBeschreibung
Geschützte MethodeUnterstützt von XNA FrameworkCanonicalizeInfrastruktur. Veraltet. Konvertiert den intern gespeicherten URI in kanonische Form.
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsCheckHostNameBestimmt, ob der angegebene Hostname ein gültiger DNS-Name ist.
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsCheckSchemeNameBestimmt, ob der angegebene Schemaname gültig ist.
Geschützte MethodeUnterstützt von XNA FrameworkCheckSecurityInfrastruktur. Veraltet. Das Aufrufen dieser Methode hat keine Auswirkung.
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsCompareVergleicht die angegebenen Teile von zwei URIs gemäß den angegebenen Vergleichsregeln.
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsEqualsÜberprüft zwei Uri-Instanzen auf Gleichheit. (Überschreibt Object.Equals(Object).)
Geschützte MethodeUnterstützt von XNA FrameworkEscapeInfrastruktur. Veraltet. Konvertiert alle unsicheren oder reservierten Zeichen in der Pfadkomponente in die entsprechenden Hexadezimaldarstellungen.
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsEscapeDataStringKonvertiert eine Zeichenfolge in eine Darstellung mit Escapezeichen.
Geschützte MethodeStatischer MemberUnterstützt von XNA FrameworkEscapeString Veraltet. Konvertiert eine Zeichenfolge in eine Darstellung mit Escapezeichen.
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsEscapeUriStringKonvertiert eine URI-Zeichenfolge in eine Darstellung mit Escapezeichen.
Geschützte MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsFinalize Gibt einem Objekt Gelegenheit, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der Garbage Collection freigegeben wird. (Von Object geerbt.)
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkFromHexRuft den Dezimalwert einer Hexadezimalziffer ab.
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsGetComponentsRuft die angegebenen Komponenten der aktuellen Instanz mit dem angegebenen Escapeverhalten für Sonderzeichen ab.
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsGetHashCodeRuft den Hashcode für den URI ab. (Überschreibt Object.GetHashCode().)
Öffentliche MethodeUnterstützt von XNA FrameworkGetLeftPartRuft den angegebenen Teil einer Uri-Instanz ab.
Geschützte MethodeGetObjectDataGibt die Daten zurück, die zum Serialisieren der aktuellen Instanz benötigt werden.
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsGetTypeRuft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkHexEscapeKonvertiert ein angegebenes Zeichen in die entsprechende Hexadezimaldarstellung.
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkHexUnescapeKonvertiert eine angegebene Hexadezimaldarstellung eines Zeichens in das Zeichen selbst.
Geschützte MethodeUnterstützt von XNA FrameworkIsBadFileSystemCharacterInfrastruktur. Veraltet. Ruft ab, ob ein Zeichen in einem Dateisystemnamen ungültig ist.
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsIsBaseOfBestimmt, ob die aktuelle Uri-Instanz eine Basis der angegebenen Uri-Instanz ist.
Geschützte MethodeStatischer MemberUnterstützt von XNA FrameworkIsExcludedCharacterInfrastruktur. Veraltet. Ruft ab, ob das angegebene Zeichen mit Escapezeichen versehen werden soll.
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkIsHexDigitBestimmt, ob ein angegebenes Zeichen eine gültige Hexadezimalziffer ist.
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkIsHexEncodingBestimmt, ob ein Zeichen in einer Zeichenfolge hexadezimal codiert ist.
Geschützte MethodeUnterstützt von XNA FrameworkIsReservedCharacterInfrastruktur. Veraltet. Ruft ab, ob das angegebene Zeichen ein reserviertes Zeichen ist.
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsIsWellFormedOriginalStringGibt an, ob die zum Erstellen dieses Uri verwendete Zeichenfolge wohlgeformt war und keine weiteren Escapezeichen eingefügt werden müssen.
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsIsWellFormedUriStringGibt an, ob eine Zeichenfolge wohlgeformt ist, indem versucht wird, einen URI aus der Zeichenfolge zu erstellen. Es wird sichergestellt, dass keine weiteren Escapezeichen in die Zeichenfolge eingefügt werden müssen.
Öffentliche MethodeUnterstützt von XNA FrameworkMakeRelative Veraltet. Bestimmt den Unterschied zwischen zwei Uri-Instanzen.
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsMakeRelativeUriBestimmt den Unterschied zwischen zwei Uri-Instanzen.
Geschützte MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsMemberwiseCloneErstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.)
Geschützte MethodeUnterstützt von XNA FrameworkParseInfrastruktur. Veraltet. Analysiert den URI der aktuellen Instanz, um sicherzustellen, dass alle für einen gültigen URI erforderlichen Teile enthalten sind.
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsToStringRuft eine kanonische Zeichenfolgenentsprechung der angegebenen Uri-Instanz ab. (Überschreibt Object.ToString().)
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsTryCreate(String, UriKind, Uri)Erstellt mit der angegebenen String-Instanz und einer UriKind einen neuen Uri.
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsTryCreate(Uri, String, Uri)Erstellt mit der angegebenen Basis und den relativen Uri-Instanzen einen neuen String.
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsTryCreate(Uri, Uri, Uri)Erstellt mit der angegebenen Basis und den relativen Uri-Instanzen einen neuen Uri.
Geschützte MethodeUnterstützt von XNA FrameworkUnescapeInfrastruktur. Veraltet. Konvertiert die angegebene Zeichenfolge, indem alle Escapesequenzen durch die entsprechende Darstellung ohne Escapezeichen ersetzt werden.
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsUnescapeDataStringKonvertiert eine Zeichenfolge in eine Darstellung ohne Escapezeichen.
Zum Seitenanfang

  NameBeschreibung
Öffentlicher OperatorStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsEqualityBestimmt, ob zwei Uri-Instanzen denselben Wert haben.
Öffentlicher OperatorStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsInequalityBestimmt, ob zwei Uri-Instanzen verschiedene Werte haben.
Zum Seitenanfang

  NameBeschreibung
Öffentliches FeldStatischer MemberUnterstützt von XNA FrameworkSchemeDelimiterGibt die Zeichen an, die das Schema des Kommunikationsprotokolls vom Adressteil des URIs trennen. Dieses Feld ist schreibgeschützt.
Öffentliches FeldStatischer MemberUnterstützt von XNA FrameworkUriSchemeFileGibt an, dass der URI ein Zeiger auf eine Datei ist. Dieses Feld ist schreibgeschützt.
Öffentliches FeldStatischer MemberUnterstützt von XNA FrameworkUriSchemeFtpGibt an, dass auf den URI über FTP (File Transfer Protocol) zugegriffen wird. Dieses Feld ist schreibgeschützt.
Öffentliches FeldStatischer MemberUnterstützt von XNA FrameworkUriSchemeGopherGibt an, dass auf den URI über das Gopher-Protokoll zugegriffen wird. Dieses Feld ist schreibgeschützt.
Öffentliches FeldStatischer MemberUnterstützt von XNA FrameworkUriSchemeHttpGibt an, dass auf den URI über HTTP (Hypertext Transfer Protocol) zugegriffen wird. Dieses Feld ist schreibgeschützt.
Öffentliches FeldStatischer MemberUnterstützt von XNA FrameworkUriSchemeHttpsGibt an, dass auf den URI über HTTPS (Secure Hypertext Transfer Protocol) zugegriffen wird. Dieses Feld ist schreibgeschützt.
Öffentliches FeldStatischer MemberUnterstützt von XNA FrameworkUriSchemeMailtoGibt an, dass der URI eine E-Mail-Adresse ist und der Zugriff über SMTP (Simple Mail Transport Protocol) erfolgt. Dieses Feld ist schreibgeschützt.
Öffentliches FeldStatischer MemberUnterstützt von XNA FrameworkUriSchemeNetPipeGibt an, dass auf den URI über das von Windows Communication Foundation (WCF) verwendete NetPipe-Schema zugegriffen wird. Dieses Feld ist schreibgeschützt.
Öffentliches FeldStatischer MemberUnterstützt von XNA FrameworkUriSchemeNetTcpGibt an, dass auf den URI über das von Windows Communication Foundation (WCF) verwendete NetTcp-Schema zugegriffen wird. Dieses Feld ist schreibgeschützt.
Öffentliches FeldStatischer MemberUnterstützt von XNA FrameworkUriSchemeNewsGibt an, dass der URI eine Internetnewsgroup ist, auf die über NNTP (Network News Transport Protocol) zugegriffen wird. Dieses Feld ist schreibgeschützt.
Öffentliches FeldStatischer MemberUnterstützt von XNA FrameworkUriSchemeNntpGibt an, dass der URI eine Internetnewsgroup ist, auf die über NNTP (Network News Transport Protocol) zugegriffen wird. Dieses Feld ist schreibgeschützt.
Zum Seitenanfang

  NameBeschreibung
Explizite SchnittstellenimplementierungPrivate MethodeISerializable.GetObjectDataGibt die Daten zurück, die zum Serialisieren der aktuellen Instanz benötigt werden.
Zum Seitenanfang

Ein URI ist eine kompakte Darstellung einer Ressource, die einer Anwendung im Intranet oder im Internet zur Verfügung steht. Die Uri-Klasse definiert die Eigenschaften und Methoden zur Behandlung von URIs. Dazu gehören Analysieren, Vergleichen und Verbinden. Die Eigenschaften der Uri-Klasse sind schreibgeschützt. Ein Objekt, das geändert werden kann, erstellen Sie mithilfe der UriBuilder-Klasse.

Relative URIs (z. B. "/new/index.htm") müssen in Bezug auf ein Basis-URI erweitert werden, damit sie absolut werden. Die MakeRelative-Methode steht zur Verfügung, um bei Bedarf absolute URIs in relative URIs zu konvertieren.

Die Uri-Konstruktoren versehen eine URI-Zeichenfolge nicht mit Escapezeichen, wenn die Zeichenfolge des URIs einschließlich Schemabezeichner formal korrekt ist.

Die Uri-Eigenschaften geben eine kanonische Darstellung der Daten mit Escapecodierung zurück, wobei alle Zeichen mit Unicode-Werten über 127 durch ihre hexadezimale Entsprechung ersetzt werden. Zum Überführen eines URIs in kanonische Form führt der Uri-Konstruktor folgende Schritte durch:

  • Das URI-Schema wird in Kleinbuchstaben konvertiert.

  • Konvertiert den Hostnamen in Kleinschreibung.

  • Wenn der Hostname eine IPv6-Adresse ist, wird die kanonische IPv6-Adresse verwendet. ScopeID und andere optionale IPv6-Daten werden entfernt.

  • Standardanschlussnummern und leere Anschlussnummern werden entfernt.

  • Kanonisiert den Pfad für hierarchische URIs, indem Sequenzen wie /./, /../, //, einschließlich mit Escapezeichen versehener Darstellungen, komprimiert werden. Beachten Sie, dass für einige Schemas die mit Escapezeichen versehenen Darstellungen nicht komprimiert werden.

  • Wenn der Host für hierarchische URIs nicht mit einem Schrägstrich (/) endet, wird dieser hinzugefügt.

  • Standardmäßig werden alle reservierten Zeichen im URI in Übereinstimmung mit RFC 2396 als Escapezeichen angegeben. Dieses Verhalten ändert sich, wenn die Analyse von International Resource Identifier oder International Domain Name aktiviert wird. In diesem Fall werden reservierte Zeichen im URI in Übereinstimmung mit RFC 3986 und RFC 3987 mit Escapezeichen versehen.

Im Rahmen der Kanonisierung im Konstruktor für einige Schemas werden mit Escapezeichen versehene Darstellungen komprimiert. Zu den Schemas, für die der URI-Konstruktor mit Escapezeichen versehene Sequenzen komprimiert, zählen Folgende: file, http, https, net.pipe und net.tcp. Für alle anderen Schemas werden mit Escapezeichen versehene Sequenzen nicht komprimiert. Wenn Sie beispielsweise die beiden Punkte ".." mit dem Prozentsymbol als "%2E%2E" codieren, komprimiert der URI-Konstruktor diese Sequenz für einige Schemas. Im folgenden Beispiel wird ein URI-Konstruktor für das http-Schema veranschaulicht.


    Uri uri = new Uri("http://myUrl/%2E%2E/%2E%2E");
    Console.WriteLine(uri.AbsoluteUri);
    Console.WriteLine(uri.PathAndQuery);

Bei Ausführung dieses Codes wird die folgende Ausgabe erhalten, in der die mit Escapezeichen versehene Sequenz komprimiert ist.


http://myUrl/
/

Im folgenden Codebeispiel wird ein URI-Konstruktor für das ftp-Schema veranschaulicht.


    Uri uri = new Uri("ftp://myUrl/%2E%2E/%2E%2E");
    Console.WriteLine(uri.AbsoluteUri);
    Console.WriteLine(uri.PathAndQuery);

Bei Ausführung dieses Codes wird die folgende Ausgabe erhalten, in der die mit Escapezeichen versehene Sequenz nicht komprimiert ist.


ftp://myUrl/%2E%2E/%2E%2E
/%2E%2E/%2E%2E

Der Inhalt der Uri-Klasse kann mit der ToString-Methode von einem Verweis auf einen mit Escapezeichen codierten URI in einen Verweis auf einen lesbaren URI umgewandelt werden. Beachten Sie, dass einige reservierte Zeichen in der Ausgabe der ToString-Methode immer noch mit Escapezeichen versehen sein können. Auf diese Weise wird die unmissverständliche Rekonstruktion eines URIs des Werts unterstützt, der von ToString zurückgegeben wird.

Einige URIs schließen einen Fragmentbezeichner oder eine Abfrage oder beides ein. Bei einem Fragmentbezeichner handelt es sich um Text, der einem Nummernzeichen (#) folgt, ohne das Nummernzeichen einzuschließen. Der Fragmenttext wird in der Fragment-Eigenschaft gespeichert. Bei Abfrageinformationen handelt es sich um Text, der im URI auf ein Fragezeichen (?) folgt. Der Abfragetext wird in der Query-Eigenschaft gespeichert.

In .NET Framework, Version 1.1, fügt die Uri-Klasse nach dem Doppelpunkt "//" ein, wenn die für einen Konstruktor angegebene Zeichenfolge ein unbekanntes Schema und "c:\" enthält. Zum Beispiel wird der URI xyz:c:\abc in xyz://c:/abc konvertiert. In .NET Framework, Version 2.0, wurde dieses Verhalten entfernt, und die Beispielzeichenfolge wird in xyz:c:/abc konvertiert.

HinweisHinweis

Die URI-Klasse unterstützt bei der Verwendung von IP-Adressen sowohl die Quadschreibweise für IPv4 als auch die Hexadezimalschreibweise für IPv6. IPv6-Adressen müssen in eckigen Klammern angegeben werden, z. B. http://[::1].

IRI-Unterstützung (International Resource Identifier)

Webadressen werden typischerweise mit URIs (Uniform Resource Identifiers) ausgedrückt, die aus einem stark einschränkten Zeichensatz bestehen:

  • ASCII-Groß- und Kleinbuchstaben des englischen Alphabets.

  • Ziffern von 0 bis 9.

  • Eine kleine Anzahl anderer ASCII-Symbole.

Die Spezifikationen für URIs sind in RFC 2396, RFC 2732, RFC 3986 und RFC 3987 dokumentiert, die von der IETF (Internet Engineering Task Force) veröffentlicht wurden.

Mit dem stetigen Anwachsen des Internets müssen Ressourcen zunehmend auch in anderen Sprachen als Englisch angegeben werden. Bezeichner, die dieser Anforderung gerecht werden und Nicht-ASCII-Zeichen (Zeichen im Unicode/ISO 10646-Zeichensatz) zulassen, sind IRIs (International Resource Identifiers). Die Spezifikationen für IRIs sind in RFC 3987 dokumentiert, die von der IETF veröffentlicht wurde. Wenn IRIs verwendet werden, kann eine URL auch Unicode-Zeichen enthalten.

Die vorhandene Uri-Klasse wurde in .NET Framework v3.5, 3.0 SP1 und 2.0 SP1 erweitert und bietet nun IRI-Unterstützung (International Resource Identifier) gemäß RFC 3987. Aktuelle Benutzer werden keinen Unterschied zum .NET Framework 2.0-Verhalten feststellen, es sei denn, sie aktivieren IRI explizit. Damit wird die Anwendungskompatibilität mit früheren Versionen von .NET Framework gewährleistet.

Zum Aktivieren der Unterstützung für IRI muss die folgende Änderung vorgenommen werden:

  • Geben Sie an, ob IDN-Analysen (Internationalized Domain Name) auf den Domänennamen angewendet und ob IRI-Analyseregeln beachtet werden sollen. Dies können Sie in der Datei machine.config oder in der Datei app.config festlegen. Fügen Sie beispielsweise Folgendes hinzu:

    <configuration>
      <uri>
      <idn enabled="All" />
      <iriParsing enabled="true" />
      </uri>
    </configuration>
    

Durch das Aktivieren von IDN werden alle Unicode-Bezeichnungen in einem Domänennamen in ihre Punycode-Entsprechungen konvertiert. Punycode-Namen enthalten nur ASCII-Zeichen und beginnen immer mit dem Präfix xn--. Der Grund dafür besteht in der Unterstützung vorhandener DNS-Server im Internet, da die meisten DNS-Server nur ASCII-Zeichen unterstützen (siehe RFC 3940).

Das Aktivieren von IRI und IDN wirkt sich auf den Wert der Uri.DnsSafeHost-Eigenschaft aus. Das Aktivieren von IRI und IDN kann auch das Verhalten der Methoden Equals, OriginalString, GetComponents und IsWellFormedOriginalString ändern.

In Abhängigkeit von den verwendeten DNS-Servern gibt es drei mögliche Werte für IDN:

  • idn enabled = All

    Durch diesen Wert werden alle Unicode-Domänennamen in ihre Punycode-Entsprechungen (IDN-Namen) konvertiert.

  • idn enabled = AllExceptIntranet

    Durch diesen Wert werden alle Unicode-Domänennamen außerhalb des lokalen Intranets so konvertiert, dass die Punycode-Entsprechungen (IDN-Namen) verwendet werden. Wenn internationale Namen im lokalen Intranet verarbeitet werden sollen, müssen die DNS-Server im Intranet die Auflösung von Unicode-Namen unterstützen.

  • idn enabled = None

    Durch diesen Wert werden keine Unicode-Domänennamen in ihre Punycode-Entsprechungen konvertiert. Dies ist der Standardwert, der dem .NET Framework 2.0-Verhalten entspricht.

Durch Aktivieren der IRI-Analyse (iriParsing enabled = true) werden Normalisierung und Zeichenüberprüfung nach den letzten IRI-Regeln in RFC 3986 und RFC 3987 ausgeführt. Der Standardwert ist false, bei dem Normalisierung und Zeichenüberprüfung gemäß RFC 2396 und RFC 2732 (für IPv6-Literale) ausgeführt werden.

Die IRI- und IDN-Verarbeitung in der Uri-Klasse kann auch mithilfe der Klassen System.Configuration.IriParsingElement, System.Configuration.IdnElement und System.Configuration.UriSection gesteuert werden, die Konfigurationseinstellungen enthalten. Die Einstellung System.Configuration.IriParsingElement aktiviert oder deaktiviert die IRI-Verarbeitung in der Uri-Klasse. Die Einstellung System.Configuration.IdnElement aktiviert oder deaktiviert die IDN-Verarbeitung in der Uri-Klasse. Mithilfe der Einstellung System.Configuration.IriParsingElement wird IDN auch indirekt gesteuert. Die IRI-Verarbeitung muss aktiviert sein, damit IDN-Verarbeitungsvorgänge ausgeführt werden können. Wenn die IRI-Verarbeitung deaktiviert ist, wird die IDN-Verarbeitung auf die Standardeinstellung festgelegt, in der das .NET Framework 2.0-Verhalten aus Kompatibilitätsgründen verwendet wird, und es werden keine IDN-Namen verwendet.

Die Konfigurationseinstellung für das System.Configuration.IriParsingElement und das System.Configuration.IdnElement wird einmal gelesen, wenn die erste System.Uri-Klasse erstellt wird. Änderungen an Konfigurationseinstellungen nach diesem Zeitpunkt werden ignoriert.

Die System.GenericUriParser-Klasse wurde außerdem so erweitert, dass das Erstellen eines anpassbaren Parsers möglich ist, der IRI und IDN unterstützt. Das Verhalten eines System.GenericUriParser-Objekts wird angegeben, indem eine bitweise Kombination der in der System.GenericUriParserOptions-Enumeration verfügbaren Werte an den System.GenericUriParser-Konstruktor übergeben wird. Der GenericUriParserOptions.IriParsing-Typ gibt an, dass der Parser die in RFC 3987 für IRI (International Resource Identifiers) angegebenen Analyseregeln unterstützt. Durch die oben beschriebenen Konfigurationswerte wird bestimmt, ob IRI verwendet wird.

Der GenericUriParserOptions.Idn-Typ gibt an, dass der Parser IDN-Analysen (Internationalized Domain Name) von Hostnamen unterstützt. Durch die oben beschriebenen Konfigurationswerte wird bestimmt, ob IDN verwendet wird.

Überlegungen zur Leistung

Wenn Sie eine Datei Web.config verwenden, die URIs zum Initialisieren Ihrer Anwendung enthält, wird die Dauer zum Verarbeiten der URIs zusätzlich verlängert, wenn die jeweiligen Schemabezeichner vom Standard abweichen. Initialisieren Sie die betroffenen Teile der Anwendung in diesem Fall erst dann, wenn die URIs benötigt werden, und nicht schon beim Start der Anwendung.

Hinweise zu Aufrufern

Aufgrund dieser Sicherheitsbedenken sollten Sie bei der Anwendung mit Umsicht vorgehen, wenn Sie Uri-Instanzen von nicht vertrauenswürdigen Quellen akzeptieren, und dontEscape auf true festgelegt ist. Sie können eine URI-Zeichenfolge auf Gültigkeit prüfen, indem Sie die IsWellFormedOriginalString-Methode aufrufen.

Im folgenden Beispiel wird eine Instanz der Uri-Klasse erstellt und für die Erstellung einer WebRequest-Instanz verwendet.


Uri siteUri = new Uri("http://www.contoso.com/");

WebRequest wr = WebRequest.Create(siteUri);



.NET Framework

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Portable Klassenbibliothek

Unterstützt in: Portable Klassenbibliothek

.NET für Windows Store-Apps

Unterstützt in: Windows 8

.NET für Windows Phone-Apps

Unterstützt in: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft