Uri Klasse

Definition

Stellt eine Objektdarstellung eines URIs (Uniform Resource Identifier) und einfachen Zugriff auf die Teile des URIs bereit.Provides an object representation of a uniform resource identifier (URI) and easy access to the parts of the URI.

public ref class Uri : System::Runtime::Serialization::ISerializable
[System.ComponentModel.TypeConverter(typeof(System.UriTypeConverter))]
[System.Serializable]
public class Uri : System.Runtime.Serialization.ISerializable
type Uri = class
    interface ISerializable
Public Class Uri
Implements ISerializable
Vererbung
Attribute
Implementiert

Beispiele

Im folgenden Beispiel wird eine Instanz der Uri-Klasse erstellt und zum Erstellen einer WebRequest Instanz verwendet.The following example creates an instance of the Uri class and uses it to create a WebRequest instance.

Uri^ siteUri = gcnew Uri( "http://www.contoso.com/" );
WebRequest^ wr = WebRequest::Create( siteUri );
Uri siteUri = new Uri("http://www.contoso.com/");
 
WebRequest wr = WebRequest.Create(siteUri);

Dim siteUri As New Uri("http://www.contoso.com/")
        
Dim wr As WebRequest = WebRequest.Create(siteUri)

Hinweise

Ein URI ist eine kompakte Darstellung einer Ressource, die für Ihre Anwendung im Intranet oder Internet verfügbar ist.A URI is a compact representation of a resource available to your application on the intranet or Internet. Die Uri-Klasse definiert die Eigenschaften und Methoden für die Behandlung von URIs, einschließlich der Verarbeitung, des Vergleichs und der Kombination.The Uri class defines the properties and methods for handling URIs, including parsing, comparing, and combining. Die Eigenschaften der Uri Klasse sind schreibgeschützt. Verwenden Sie die UriBuilder-Klasse, um ein änderbares Objekt zu erstellen.The Uri class properties are read-only; to create a modifiable object, use the UriBuilder class.

Relative URIs (z. b. "/New/Index.htm") müssen in Bezug auf einen Basis-URI erweitert werden, damit Sie absolut sind.Relative URIs (for example, "/new/index.htm") must be expanded with respect to a base URI so that they are absolute. Die MakeRelative-Methode wird bereitgestellt, um bei Bedarf absolute URIs in relative URIs zu konvertieren.The MakeRelative method is provided to convert absolute URIs to relative URIs when necessary.

Die Uri Konstruktoren führen keine Escapezeichen für URI-Zeichen folgen aus, wenn die Zeichenfolge ein wohlgeformter URI einschließlich eines Schema Bezeichners ist.The Uri constructors do not escape URI strings if the string is a well-formed URI including a scheme identifier.

Die Uri Eigenschaften geben eine kanonische Datendarstellung in der Codierung mit Escapezeichen zurück, wobei alle Zeichen mit Unicode-Werten größer als 127 durch ihre hexadezimalen Entsprechungen ersetzt wurden.The Uri properties return a canonical data representation in escaped encoding, with all characters with Unicode values greater than 127 replaced with their hexadecimal equivalents. Um den URI in kanonischer Form zu platzieren, führt der Uri-Konstruktor die folgenden Schritte aus:To put the URI in canonical form, the Uri constructor performs the following steps:

  • Konvertiert das URI-Schema in Kleinbuchstaben.Converts the URI scheme to lowercase.

  • Konvertiert den Hostnamen in Kleinbuchstaben.Converts the host name to lowercase.

  • Wenn der Hostname eine IPv6-Adresse ist, wird die kanonische IPv6-Adresse verwendet.If the host name is an IPv6 address, the canonical IPv6 address is used. ScopeId und andere optionale IPv6-Daten werden entfernt.ScopeId and other optional IPv6 data are removed.

  • Entfernt standardmäßige und leere Portnummern.Removes default and empty port numbers.

  • Konvertiert implizite Dateipfade ohne das file://-Schema (z. b. "c:\my\file") in explizite Dateipfade mit dem file://-Schema.Converts implicit file paths without the file:// scheme (for example, "C:\my\file") to explicit file paths with the file:// scheme.

  • Escapezeichen (auch als Prozent codierte Oktette bezeichnet), die keinen reservierten Zweck aufweisen, werden decodiert (auch als "ohne Escapezeichen" bezeichnet).Escaped characters (also known as percent-encoded octets) that don't have a reserved purpose are decoded (also known as being unescaped). Zu diesen nicht reservierten Zeichen zählen groß-und Kleinbuchstaben (%41-% 5a und %61-% 7a), Dezimalziffern (%30-%39), Bindestriche (% 2D), Punkt (% 2E), Unterstrich (% 5F) und Tilde (% 7e).These unreserved characters include uppercase and lowercase letters (%41-%5A and %61-%7A), decimal digits (%30-%39), hyphen (%2D), period (%2E), underscore (%5F), and tilde (%7E).

  • Kanonisiert den Pfad für hierarchische URIs durch Komprimierungs Sequenzen wie/./,/. /und//(unabhängig davon, ob die Sequenz mit Escapezeichen versehen ist).Canonicalizes the path for hierarchical URIs by compacting sequences such as /./, /../, and // (whether or not the sequence is escaped). Beachten Sie, dass einige Schemas vorhanden sind, für die diese Sequenzen nicht komprimiert werden.Note that there are some schemes for which these sequences are not compacted.

  • Wenn der Host bei hierarchischen URIs nicht mit einem Schrägstrich (/) beendet wird, wird eine hinzugefügt.For hierarchical URIs, if the host is not terminated with a forward slash (/), one is added.

  • Standardmäßig werden alle reservierten Zeichen im URI in Übereinstimmung mit RFC 2396 mit Escapezeichen versehen.By default, any reserved characters in the URI are escaped in accordance with RFC 2396. Dieses Verhalten ändert sich, wenn internationale Ressourcen Bezeichner oder die internationale Domänen Namen-Verarbeitung aktiviert ist. in diesem Fall werden reservierte Zeichen im URI in Übereinstimmung mit RFC 3986 und RFC 3987 mit Escapezeichen versehen.This behavior changes if International Resource Identifiers or International Domain Name parsing is enabled in which case reserved characters in the URI are escaped in accordance with RFC 3986 and RFC 3987.

Als Teil der Kanonisierung im Konstruktor für einige Schemas, Punkt Segmente und leere Segmente (/./,/. /und//) werden komprimiert (d. h., Sie werden entfernt).As part of canonicalization in the constructor for some schemes, dot-segments and empty segments (/./, /../, and //) are compacted (in other words, they are removed). Die Schemas, für die diese Sequenzen von URI komprimiert werden, sind http, HTTPS, TCP, net. Pipe und net. TCP.The schemes for which URI will compact these sequences include http, https, tcp, net.pipe, and net.tcp. Für einige andere Schemas werden diese Sequenzen nicht komprimiert.For some other schemes, these sequences are not compacted. Im folgenden wird erläutert, wie diese Komprimierung in der Praxis aussieht.Here's how this compacting looks in practice.

var uri = new Uri("http://myUrl/../.."); // http scheme, unescaped
OR
var uri = new Uri("http://myUrl/%2E%2E/%2E%2E"); // http scheme, escaped
OR
var uri = new Uri("ftp://myUrl/../.."); // ftp scheme, unescaped
OR
var uri = new Uri("ftp://myUrl/%2E%2E/%2E%2E"); // ftp scheme, escaped

Console.WriteLine(uri.AbsoluteUri);  
Console.WriteLine(uri.PathAndQuery);  

Wenn dieser Code ausgeführt wird, wird die folgende Ausgabe zurückgegeben, wobei die Escapesequenzen bei Bedarf ohne Escapezeichen versehen und dann komprimiert werden.When this code is executed, it returns the following output, with the escaped sequences unescaped if necessary and then compacted.

http://myUrl/  
/  

Sie können den Inhalt der Uri-Klasse mit der ToString-Methode von einem escapecodierten URI-Verweis in einen lesbaren URI-Verweis transformieren.You can transform the contents of the Uri class from an escape encoded URI reference to a readable URI reference by using the ToString method. Beachten Sie, dass einige reservierte Zeichen in der Ausgabe der ToString Methode möglicherweise noch mit Escapezeichen versehen werden.Note that some reserved characters might still be escaped in the output of the ToString method. Dies dient zur Unterstützung der eindeutigen Wiederherstellung eines URIs aus dem Wert, der von ToStringzurückgegeben wird.This is to support unambiguous reconstruction of a URI from the value returned by ToString.

Einige URIs enthalten einen Fragmentbezeichner oder eine Abfrage oder beides.Some URIs include a fragment identifier or a query or both. Ein Fragmentbezeichner ist ein beliebiger Text, der auf ein Nummern Zeichen (#) folgt, ohne das Nummern Zeichen. der Fragmenttext wird in der Fragment-Eigenschaft gespeichert.A fragment identifier is any text that follows a number sign (#), not including the number sign; the fragment text is stored in the Fragment property. Abfrage Informationen sind Text, der auf ein Fragezeichen (?) im URI folgt. der Abfragetext wird in der Query-Eigenschaft gespeichert.Query information is any text that follows a question mark (?) in the URI; the query text is stored in the Query property.

Wenn in der .NET Framework Version 1,1 die für einen Konstruktor angegebene Zeichenfolge ein unbekanntes Schema und "c:\" enthält, fügt die Uri-Klasse nach dem Doppelpunkt "//" ein.In the .NET Framework version 1.1, if the string specified to a constructor contains an unknown scheme and "c:\", the Uri class inserts "//" after the colon. Beispielsweise wird der URI xyz:c:\abc in xyz://c:/abckonvertiert.For example, the URI xyz:c:\abc is converted to xyz://c:/abc. In der .NET Framework Version 2,0 wurde dieses Verhalten entfernt, und die Beispiel Zeichenfolge wird in xyz:c:/abckonvertiert.In the .NET Framework version 2.0, this behavior has been removed, and the example string is converted to xyz:c:/abc.

Hinweis

Die Uri-Klasse unterstützt die Verwendung von IP-Adressen in Quad-Notation für IPv4-Protokoll und Doppelpunkt-hexadezimal für das IPv6-Protokoll.The URI class supports the use of IP addresses in both quad-notation for IPv4 protocol and colon-hexadecimal for IPv6 protocol. Denken Sie daran, die IPv6-Adresse in eckige Klammern einzuschließen, wie in http://[:: 1].Remember to enclose the IPv6 address in square brackets, as in http://[::1].

International Resource Identifier-UnterstützungInternational Resource Identifier Support

Webadressen werden in der Regel mithilfe von Uniform Resource Identifier ausgedrückt, die aus einem sehr eingeschränkten Satz von Zeichen bestehen:Web addresses are typically expressed using uniform resource identifiers that consist of a very restricted set of characters:

  • ASCII-Großbuchstaben und -Kleinbuchstaben des englischen AlphabetsUpper and lower case ASCII letters from the English alphabet.

  • Ziffern von 0 bis 9Digits from 0 to 9.

  • einer kleinen Anzahl weiterer ASCII-SymboleA small number of other ASCII symbols.

Die Spezifikationen für URIs sind in RFC 2396, RFC 2732, RFC 3986 und RFC 3987 dokumentiert, die von der Internet Engineering Task Force (IETF) veröffentlicht wurden.The specifications for URIs are documented in RFC 2396, RFC 2732, RFC 3986, and RFC 3987 published by the Internet Engineering Task Force (IETF).

Durch das ständige Wachstum des Internets wird es immer notwendiger, Ressourcen in anderen Sprachen als in Englisch zu bezeichnen.With the growth of the Internet, there is a growing need to identify resources using languages other than English. Bezeichner, die dies ermöglichen und die Nicht-ASCII-Zeichen (Zeichen des Unicode-/ISO-Zeichensatzes 10646) zulassen, werden als International Resource Identifiers (IRIs) bezeichnet.Identifiers which facilitate this need and allow non-ASCII characters (characters in the Unicode/ISO 10646 character set) are known as International Resource Identifiers (IRIs). Die IRI-Spezifikationen werden in RFC 3987 dokumentiert, die von der IETF veröffentlicht wird.The specifications for IRIs are documented in RFC 3987 published by IETF. Wenn IRIs verwendet werden, kann eine URL Unicode-Zeichen enthalten.Using IRIs allows a URL to contain Unicode characters.

Die vorhandene Uri Klasse wurde in .NET Framework v 3.5, 3,0 SP1 und 2,0 SP1 erweitert, um IRI-Unterstützung basierend auf RFC 3987 bereitzustellen.The existing Uri class has been extended in .NET Framework v3.5, 3.0 SP1, and 2.0 SP1 to provide IRI support based on RFC 3987. Benutzer von .NET Framework Versionen vor Version 4,5 sehen keine Änderungen des .NET Framework 2,0-Verhaltens, es sei denn, Sie aktivieren IRI ausdrücklich.Users of .NET Framework versions before version 4.5 will not see any change from the .NET Framework 2.0 behavior unless they specifically enable IRI. Dadurch wird die Anwendungskompatibilität mit früheren Versionen von .NET Framework garantiert.This ensures application compatibility with prior versions of the .NET Framework.

Die folgenden Änderungen sind erforderlich, um die Unterstützung für IRI zu aktivieren:To enable support for IRI, the following change is required:

  • Geben Sie an, ob die IDN-Verarbeitung (Internationalized Domain Name) auf den Domänen Namen angewendet werden soll und ob IRI-Regeln angewendet werden sollen.Specify whether you want Internationalized Domain Name (IDN) parsing applied to the domain name and whether IRI parsing rules should be applied. Dies kann in der Datei " Machine. config " oder in der Datei " app. config " erfolgen.This can be done in the machine.config or in the app.config file. Fügen Sie z. b. Folgendes hinzu:For example, add the following:

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

Für Benutzer von .NET Framework 4,5 und neuer ist IRI immer aktiviert.Users of .NET Framework 4.5 and newer always have IRI enabled. Die IRI-Verarbeitung kann nicht mithilfe einer config -Datei geändert werden.IRI parsing cannot be changed using a .config file.

Beim Aktivieren von IDN werden alle Unicode-Bezeichnungen in einem Domänennamen in ihre Punycode-Entsprechungen konvertiert.Enabling IDN will convert all Unicode labels in a domain name to their Punycode equivalents. Punycode-Namen enthalten nur ASCII-Zeichen und beginnen immer mit dem Präfix „xn--“.Punycode names contain only ASCII characters and always start with the xn-- prefix. So werden vorhandene DNS-Server im Internet unterstützt, da die meisten DNS-Server nur ASCII-Zeichen unterstützen (siehe RFC 3940).The reason for this is to support existing DNS servers on the Internet, since most DNS servers only support ASCII characters (see RFC 3940).

Das Aktivieren von IRI und IDN wirkt sich auf den Wert der Eigenschaft Uri.DnsSafeHost aus.Enabling IRI and IDN affects the value of the Uri.DnsSafeHost property. Das Aktivieren von IRI und IDN kann auch das Verhalten der Methoden Equals, OriginalString, GetComponents und IsWellFormedOriginalString verändern.Enabling IRI and IDN can also change the behavior of the Equals, OriginalString, GetComponents, and IsWellFormedOriginalString methods.

Es gibt drei mögliche Werte für IDN, abhängig von den verwendeten DNS-Servern:There are three possible values for IDN depending on the DNS servers that are used:

  • IDN aktiviert = alleidn enabled = All

    Durch diesen Wert werden alle Unicode-Domänennamen in ihre Punycode-Entsprechungen (IDN-Namen) konvertiert.This value will convert any Unicode domain names to their Punycode equivalents (IDN names).

  • IDN aktiviert = AllExceptIntranetidn enabled = AllExceptIntranet

    Dieser Wert konvertiert alle Unicode-Domänen Namen, die nicht im lokalen Intranet sind, in die Verwendung der Punycode-Entsprechungen (IDN-Namen).This value will convert all Unicode domain names not on the local Intranet to use the Punycode equivalents (IDN names). In diesem Fall sollten die DNS-Server, die für das Intranet verwendet werden, die Auflösung von Unicode-Namen unterstützen, um internationale Namen im lokalen Intranet zu verarbeiten.In this case to handle international names on the local Intranet, the DNS servers that are used for the Intranet should support Unicode name resolution.

  • IDN aktiviert = Noneidn enabled = None

    Durch diesen Wert werden keine Unicode-Domänennamen in ihre Punycode-Entsprechungen konvertiert.This value will not convert any Unicode domain names to use Punycode. Dies ist der Standardwert, der mit dem .NET Framework 2,0-Verhalten konsistent ist.This is the default value which is consistent with the .NET Framework 2.0 behaviour.

Wenn die IRI-Verarbeitung aktiviert ist (irimultising aktiviert = true), erfolgt die Normalisierung und Zeichen Überprüfung gemäß den neuesten IRI-Regeln in RFC 3986 und RFC 3987.When IRI parsing is enabled (iriParsing enabled = true) normalization and character checking are done according to the latest IRI rules in RFC 3986 and RFC 3987. Wenn die IRI-Verarbeitung deaktiviert ist, werden Normalisierung und Zeichen Überprüfung gemäß RFC 2396 und RFC 2732 (für IPv6-Literale) ausgeführt.When IRI parsing is disabled, normalization and character checking are performed according to RFC 2396 and RFC 2732 (for IPv6 literals). In Versionen der .NET Framework vor Version 4,5 lautet der Standardwert false.In versions of the .NET Framework before version 4.5, the default value is false. In .NET Framework Version 4,5 und höher ist der Standardwert true, und der aktivierte Status der IRI-Verarbeitung kann nicht durch Einstellungen in einer config -Datei geändert werden.In .NET Framework version 4.5 and newer, the default value is true, and the enabled state of IRI parsing cannot be modified by settings in a .config file.

Die IRI-und IDN-Verarbeitung in der Uri-Klasse kann auch mithilfe der Konfigurations Einstellungs Klassen System.Configuration.IriParsingElement, System.Configuration.IdnElementund System.Configuration.UriSection gesteuert werden.IRI and IDN processing in the Uri class can also be controlled using the System.Configuration.IriParsingElement, System.Configuration.IdnElement, and System.Configuration.UriSection configuration setting classes. Die Einstellung System.Configuration.IriParsingElement aktiviert oder deaktiviert die IRI-Verarbeitung in der Klasse Uri.The System.Configuration.IriParsingElement setting enables or disables IRI processing in the Uri class. Die Einstellung System.Configuration.IdnElement aktiviert oder deaktiviert die IDN-Verarbeitung in der Klasse Uri.The System.Configuration.IdnElement setting enables or disables IDN processing in the Uri class. Die Einstellung System.Configuration.IriParsingElement steuert indirekt auch IDN.The System.Configuration.IriParsingElement setting also indirectly controls IDN. Die IRI-Verarbeitung muss aktiviert werden, damit die IDN-Verarbeitung überhaupt möglich ist.IRI processing must be enabled for IDN processing to be possible. Ist die IRI-Verarbeitung deaktiviert, wird die IDN-Verarbeitung auf die Standardeinstellung festgelegt. Darin wird aus Kompatibilitätsgründen das .NET Framework 2.0-Verhalten verwendet, und IDN-Namen werden nicht verwendet.If IRI processing is disabled, then IDN processing will be set to the default setting where the .NET Framework 2.0 behavior is used for compatibility and IDN names are not used.

Die Konfigurationseinstellung für die System.Configuration.IriParsingElement und System.Configuration.IdnElement wird einmal gelesen, wenn die erste System.Uri Klasse erstellt wird.The configuration setting for the System.Configuration.IriParsingElement and System.Configuration.IdnElement will be read once when the first System.Uri class is constructed. Später vorgenommene Änderungen an den Konfigurationseinstellungen werden anschließend ignoriert.Changes to configuration settings after that time are ignored.

Die Klasse System.GenericUriParser wurde ebenfalls erweitert, um das Erstellen eines anpassbaren Parsers zu ermöglichen, der IRI und IDN unterstützt.The System.GenericUriParser class has also been extended to allow creating a customizable parser that supports IRI and IDN. Das Verhalten eines System.GenericUriParser-Objekts wird durch Übergabe einer bitweisen Kombination von Werten angegeben, die in der System.GenericUriParserOptions-Enumeration des System.GenericUriParser-Konstruktors verfügbar sind.The behavior of a System.GenericUriParser object is specified by passing a bitwise combination of the values available in the System.GenericUriParserOptions enumeration to the System.GenericUriParser constructor. Der GenericUriParserOptions.IriParsing-Typ gibt an, dass der Parser die in RFC 3987 angegebenen Analyseregeln für International Resource Identifiers (IRI) unterstützt.The GenericUriParserOptions.IriParsing type indicates the parser supports the parsing rules specified in RFC 3987 for International Resource Identifiers (IRI). Ob IRI verwendet wird, wird von den zuvor beschriebenen Konfigurations Werten vorgegeben.Whether IRI is used is dictated by the configuration values previously discussed.

Der GenericUriParserOptions.Idn-Typ gibt an, dass der Parser die IDN-Analyse von Hostnamen unterstützt.The GenericUriParserOptions.Idn type indicates the parser supports Internationalized Domain Name (IDN) parsing (IDN) of host names. Ob IDN verwendet wird, wird von den zuvor beschriebenen Konfigurations Werten vorgegeben.Whether IDN is used is dictated by the configuration values previously discussed.

Implizite Datei Pfad UnterstützungImplicit File Path Support

Uri können auch verwendet werden, um lokale Dateisystem Pfade darzustellen.Uri can also be used to represent local file system paths. Diese Pfade können explizit in URIs dargestellt werden, die mit dem file://-Schema beginnen, und implizit in URIs, die nicht über das file://-Schema verfügen.These paths can be represented explicitly in URIs that begin with the file:// scheme, and implicitly in URIs that do not have the file:// scheme. Als konkretes Beispiel sind die beiden folgenden URIs gültig und stellen denselben Dateipfad dar:As a concrete example, the following two URIs are both valid, and represent the same file path:

Uri uri1 = new Uri("C:/test/path/file.txt") // Implicit file path.
Uri uri2 = new Uri("file:///C:/test/path/file.txt") // Explicit file path.

Diese impliziten Dateipfade sind nicht mit der URI-Spezifikation kompatibel und sollten daher nach Möglichkeit vermieden werden.These implicit file paths are not compliant with the URI specification and so should be avoided when possible. Wenn Sie .net Core auf UNIX-basierten Systemen verwenden, können implizite Dateipfade besonders problematisch sein, da ein absoluter, impliziter Dateipfad nicht von einem relativen Pfad unter schieden werden kann.When using .NET Core on Unix-based systems, implicit file paths can be especially problematic, because an absolute implicit file path is indistinguishable from a relative path. Wenn diese Mehrdeutigkeit vorhanden ist, Uri standardmäßig den Pfad als absoluten URI interpretieren.When such ambiguity is present, Uri default to interpreting the path as an absolute URI.

Überlegungen zur LeistungPerformance Considerations

Wenn Sie eine * Web. config *-Datei verwenden, die URIs zum Initialisieren der Anwendung enthält, ist zusätzliche Zeit erforderlich, um die URIs zu verarbeiten, wenn deren Schema Bezeichner nicht standardmäßig sind.If you use a *Web.config *file that contains URIs to initialize your application, additional time is required to process the URIs if their scheme identifiers are nonstandard. Initialisieren Sie in diesem Fall die betroffenen Teile der Anwendung, wenn die URIs benötigt werden, nicht zur Startzeit.In such a case, initialize the affected parts of your application when the URIs are needed, not at start time.

Hinweise für Aufrufer

Aufgrund von Sicherheitsbedenken sollte Ihre Anwendung Vorsicht walten lassen, wenn Uri Instanzen von nicht vertrauenswürdigen Quellen akzeptiert und dontEscape auf truefestgelegt ist. Sie können eine URI-Zeichenfolge auf Gültigkeit überprüfen, indem Sie die IsWellFormedOriginalString()-Methode aufrufen.Because of security concerns, your application should use caution when accepting Uri instances from untrusted sources and with dontEscape set to true.You can check a URI string for validity by calling the IsWellFormedOriginalString() method.

Konstruktoren

Uri(SerializationInfo, StreamingContext)

Initialisiert eine neue Instanz der Uri-Klasse aus den angegebenen Instanzen der SerializationInfo-Klasse und der StreamingContext-Klasse.Initializes a new instance of the Uri class from the specified instances of the SerializationInfo and StreamingContext classes.

Uri(String)

Initialisiert eine neue Instanz der Uri-Klasse mit dem angegebenen URI.Initializes a new instance of the Uri class with the specified URI.

Uri(String, Boolean)

Initialisiert eine neue Instanz der Uri-Klasse mit dem angegebenen URI, wobei die Verwendung der Escapezeichen explizit gesteuert werden kann.Initializes a new instance of the Uri class with the specified URI, with explicit control of character escaping.

Uri(String, UriKind)

Initialisiert eine neue Instanz der Uri-Klasse mit dem angegebenen URI.Initializes a new instance of the Uri class with the specified URI. Mit diesem Konstruktor können Sie angeben, ob die URI-Zeichenfolge ein relativer URI, ein absoluter URI oder unbestimmt ist.This constructor allows you to specify if the URI string is a relative URI, absolute URI, or is indeterminate.

Uri(Uri, String)

Initialisiert eine neue Instanz der Uri-Klasse auf Grundlage des angegebenen Basis-URIs und der relativen URI-Zeichenfolge.Initializes a new instance of the Uri class based on the specified base URI and relative URI string.

Uri(Uri, String, Boolean)

Initialisiert eine neue Instanz der Uri-Klasse auf Grundlage des angegebenen Basis-URIs und des angegebenen relativen URIs mit expliziter Steuerung der Escapesequenzen.Initializes a new instance of the Uri class based on the specified base and relative URIs, with explicit control of character escaping.

Uri(Uri, Uri)

Initialisiert eine neue Instanz der Uri-Klasse auf Grundlage der Kombination einer angegebenen Uri-Instanz als Basis und einer relativen Uri-Instanz.Initializes a new instance of the Uri class based on the combination of a specified base Uri instance and a relative Uri instance.

Felder

SchemeDelimiter

Gibt die Zeichen an, die das Schema des Kommunikationsprotokolls vom Adressteil des URIs trennen.Specifies the characters that separate the communication protocol scheme from the address portion of the URI. Dieses Feld ist schreibgeschützt.This field is read-only.

UriSchemeFile

Gibt an, dass der URI ein Zeiger auf eine Datei ist.Specifies that the URI is a pointer to a file. Dieses Feld ist schreibgeschützt.This field is read-only.

UriSchemeFtp

Gibt an, dass auf den URI über FTP (File Transfer Protocol) zugegriffen wird.Specifies that the URI is accessed through the File Transfer Protocol (FTP). Dieses Feld ist schreibgeschützt.This field is read-only.

UriSchemeGopher

Gibt an, dass auf den URI über das Gopher-Protokoll zugegriffen wird.Specifies that the URI is accessed through the Gopher protocol. Dieses Feld ist schreibgeschützt.This field is read-only.

UriSchemeHttp

Gibt an, dass auf den URI über HTTP (Hypertext Transfer Protocol) zugegriffen wird.Specifies that the URI is accessed through the Hypertext Transfer Protocol (HTTP). Dieses Feld ist schreibgeschützt.This field is read-only.

UriSchemeHttps

Gibt an, dass auf den URI über HTTPS (Secure Hypertext Transfer Protocol) zugegriffen wird.Specifies that the URI is accessed through the Secure Hypertext Transfer Protocol (HTTPS). Dieses Feld ist schreibgeschützt.This field is read-only.

UriSchemeMailto

Gibt an, dass der URI eine E-Mail-Adresse ist und der Zugriff über SMTP (Simple Mail Transport Protocol) erfolgt.Specifies that the URI is an email address and is accessed through the Simple Mail Transport Protocol (SMTP). Dieses Feld ist schreibgeschützt.This field is read-only.

UriSchemeNetPipe

Gibt an, dass auf den URI über das von Windows Communication Foundation (WCF) verwendete NetPipe-Schema zugegriffen wird.Specifies that the URI is accessed through the NetPipe scheme used by Windows Communication Foundation (WCF). Dieses Feld ist schreibgeschützt.This field is read-only.

UriSchemeNetTcp

Gibt an, dass auf den URI über das von Windows Communication Foundation (WCF) verwendete NetTcp-Schema zugegriffen wird.Specifies that the URI is accessed through the NetTcp scheme used by Windows Communication Foundation (WCF). Dieses Feld ist schreibgeschützt.This field is read-only.

UriSchemeNews

Gibt an, dass der URI eine Internetnewsgroup ist, auf die über NNTP (Network News Transport Protocol) zugegriffen wird.Specifies that the URI is an Internet news group and is accessed through the Network News Transport Protocol (NNTP). Dieses Feld ist schreibgeschützt.This field is read-only.

UriSchemeNntp

Gibt an, dass der URI eine Internetnewsgroup ist, auf die über NNTP (Network News Transport Protocol) zugegriffen wird.Specifies that the URI is an Internet news group and is accessed through the Network News Transport Protocol (NNTP). Dieses Feld ist schreibgeschützt.This field is read-only.

Eigenschaften

AbsolutePath

Ruft den absoluten Pfad des URIs ab.Gets the absolute path of the URI.

AbsoluteUri

Ruft den absoluten URI ab.Gets the absolute URI.

Authority

Ruft den DNS-Hostnamen (Domain Name System) oder die IP-Adresse und die Anschlussnummer für einen Server ab.Gets the Domain Name System (DNS) host name or IP address and the port number for a server.

DnsSafeHost

Ruft einen Hostnamen, der sicher für die DNS-Auflösung verwendet werden kann, da er keine Escapezeichen enthält.Gets a host name that, after being unescaped if necessary, is safe to use for DNS resolution.

Fragment

Ruft das mit Escapezeichen versehene URI-Fragment ab.Gets the escaped URI fragment.

Host

Ruft die Hostkomponente dieser Instanz ab.Gets the host component of this instance.

HostNameType

Ruft den Typ des im URI angegebenen Hostnamens ab.Gets the type of the host name specified in the URI.

IdnHost

Der zu RFC 3490 kompatible IDN (Internationale Domänenname) des Hosts, wofür ggf. Punycode verwendet wird.The RFC 3490 compliant International Domain Name of the host, using Punycode as appropriate. Diese Zeichenfolge kann sicher für die DNS-Auflösung verwendet werden, da sie keine Escapezeichen enthält.This string, after being unescaped if necessary, is safe to use for DNS resolution.

IsAbsoluteUri

Ruft ab, ob die Uri-Instanz absolut ist.Gets whether the Uri instance is absolute.

IsDefaultPort

Ruft ab, ob der Portwert im URI der Standardwert für dieses Schema ist.Gets whether the port value of the URI is the default for this scheme.

IsFile

Ruft einen Wert ab, der angibt, ob der angegebene Uri ein Datei-URI ist.Gets a value indicating whether the specified Uri is a file URI.

IsLoopback

Ruft ab, ob der angegebene Uri auf den lokalen Host verweist.Gets whether the specified Uri references the local host.

IsUnc

Ruft ab, ob der angegebene Uri einen UNC-Pfad (Universal Naming Convention) darstellt.Gets whether the specified Uri is a universal naming convention (UNC) path.

LocalPath

Ruft die Darstellung eines Dateinamens im lokalen Betriebssystem ab.Gets a local operating-system representation of a file name.

OriginalString

Ruft die ursprüngliche URI-Zeichenfolge ab, die an den Uri-Konstruktor übergeben wurde.Gets the original URI string that was passed to the Uri constructor.

PathAndQuery

Ruft die durch ein Fragezeichen (?) getrennten Werte der AbsolutePath-Eigenschaft und der Query-Eigenschaft ab.Gets the AbsolutePath and Query properties separated by a question mark (?).

Port

Ruft die Anschlussnummer dieses URIs ab.Gets the port number of this URI.

Query

Ruft im angegebenen URI enthaltene Abfrageinformationen ab.Gets any query information included in the specified URI.

Scheme

Ruft den Namen des Schemas für diesen URI ab.Gets the scheme name for this URI.

Segments

Ruft ein Array mit den Pfadsegmenten ab, aus denen sich der angegebene URI zusammensetzt.Gets an array containing the path segments that make up the specified URI.

UserEscaped

Gibt an, dass die URI-Zeichenfolge vor dem Erstellen der Uri-Instanz vollständig mit Escapezeichen versehen war.Indicates that the URI string was completely escaped before the Uri instance was created.

UserInfo

Ruft Benutzernamen, Kennwort oder weitere benutzerspezifische Informationen ab, die dem angegebenen URI zugeordnet sind.Gets the user name, password, or other user-specific information associated with the specified URI.

Methoden

Canonicalize()

Konvertiert den intern gespeicherten URI in kanonische Form.Converts the internally stored URI to canonical form.

CheckHostName(String)

Bestimmt, ob der angegebene Hostname ein gültiger DNS-Name ist.Determines whether the specified host name is a valid DNS name.

CheckSchemeName(String)

Bestimmt, ob der angegebene Schemaname gültig ist.Determines whether the specified scheme name is valid.

CheckSecurity()

Das Aufrufen dieser Methode hat keine Auswirkung.Calling this method has no effect.

Compare(Uri, Uri, UriComponents, UriFormat, StringComparison)

Vergleicht die angegebenen Teile von zwei URIs gemäß den angegebenen Vergleichsregeln.Compares the specified parts of two URIs using the specified comparison rules.

CreateObjRef(Type)

Erstellt ein Objekt mit allen relevanten Informationen, die zum Generieren eines Proxys für die Kommunikation mit einem Remoteobjekt erforderlich sind.Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Geerbt von MarshalByRefObject)
Equals(Object)

Überprüft zwei Uri-Instanzen auf Gleichheit.Compares two Uri instances for equality.

Escape()

Konvertiert alle unsicheren oder reservierten Zeichen in der Pfadkomponente in die entsprechenden Hexadezimaldarstellungen.Converts any unsafe or reserved characters in the path component to their hexadecimal character representations.

EscapeDataString(String)

Konvertiert eine Zeichenfolge in eine Darstellung mit Escapezeichen.Converts a string to its escaped representation.

EscapeString(String)

Konvertiert eine Zeichenfolge in eine Darstellung mit Escapezeichen.Converts a string to its escaped representation.

EscapeUriString(String)

Konvertiert eine URI-Zeichenfolge in eine Darstellung mit Escapezeichen.Converts a URI string to its escaped representation.

FromHex(Char)

Ruft den Dezimalwert einer Hexadezimalziffer ab.Gets the decimal value of a hexadecimal digit.

GetComponents(UriComponents, UriFormat)

Ruft die angegebenen Komponenten der aktuellen Instanz mit dem angegebenen Escapeverhalten für Sonderzeichen ab.Gets the specified components of the current instance using the specified escaping for special characters.

GetHashCode()

Ruft den Hashcode für den URI ab.Gets the hash code for the URI.

GetLeftPart(UriPartial)

Ruft den angegebenen Teil einer Uri-Instanz ab.Gets the specified portion of a Uri instance.

GetLifetimeService()

Ruft das aktuelle Lebensdauerdienstobjekt ab, das die Lebensdauerrichtlinien für diese Instanz steuert.Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Geerbt von MarshalByRefObject)
GetObjectData(SerializationInfo, StreamingContext)

Gibt die Daten zurück, die zum Serialisieren der aktuellen Instanz benötigt werden.Returns the data needed to serialize the current instance.

GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Geerbt von Object)
HexEscape(Char)

Konvertiert ein angegebenes Zeichen in die entsprechende Hexadezimaldarstellung.Converts a specified character into its hexadecimal equivalent.

HexUnescape(String, Int32)

Konvertiert eine angegebene Hexadezimaldarstellung eines Zeichens in das Zeichen selbst.Converts a specified hexadecimal representation of a character to the character.

InitializeLifetimeService()

Ruft ein Lebensdauerdienstobjekt zur Steuerung der Lebensdauerrichtlinie für diese Instanz ab.Obtains a lifetime service object to control the lifetime policy for this instance.

(Geerbt von MarshalByRefObject)
IsBadFileSystemCharacter(Char)

Ruft ab, ob ein Zeichen in einem Dateisystemnamen ungültig ist.Gets whether a character is invalid in a file system name.

IsBaseOf(Uri)

Bestimmt, ob die aktuelle Uri-Instanz eine Basis der angegebenen Uri-Instanz ist.Determines whether the current Uri instance is a base of the specified Uri instance.

IsExcludedCharacter(Char)

Ruft ab, ob das angegebene Zeichen mit Escapezeichen versehen werden soll.Gets whether the specified character should be escaped.

IsHexDigit(Char)

Bestimmt, ob ein angegebenes Zeichen eine gültige Hexadezimalziffer ist.Determines whether a specified character is a valid hexadecimal digit.

IsHexEncoding(String, Int32)

Bestimmt, ob ein Zeichen in einer Zeichenfolge hexadezimal codiert ist.Determines whether a character in a string is hexadecimal encoded.

IsReservedCharacter(Char)

Ruft ab, ob das angegebene Zeichen ein reserviertes Zeichen ist.Gets whether the specified character is a reserved character.

IsWellFormedOriginalString()

Gibt an, ob die zum Erstellen dieses Uri verwendete Zeichenfolge wohlgeformt war und keine weiteren Escapezeichen eingefügt werden müssen.Indicates whether the string used to construct this Uri was well-formed and is not required to be further escaped.

IsWellFormedUriString(String, UriKind)

Gibt 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.Indicates whether the string is well-formed by attempting to construct a URI with the string and ensures that the string does not require further escaping.

MakeRelative(Uri)

Bestimmt den Unterschied zwischen zwei Uri-Instanzen.Determines the difference between two Uri instances.

MakeRelativeUri(Uri)

Bestimmt den Unterschied zwischen zwei Uri-Instanzen.Determines the difference between two Uri instances.

MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Geerbt von Object)
MemberwiseClone(Boolean)

Erstellt eine flache Kopie des aktuellen MarshalByRefObject-Objekts.Creates a shallow copy of the current MarshalByRefObject object.

(Geerbt von MarshalByRefObject)
Parse()

Analysiert den URI der aktuellen Instanz, um sicherzustellen, dass alle für einen gültigen URI erforderlichen Teile enthalten sind.Parses the URI of the current instance to ensure it contains all the parts required for a valid URI.

ToString()

Ruft eine kanonische Zeichenfolgenentsprechung der angegebenen Uri-Instanz ab.Gets a canonical string representation for the specified Uri instance.

TryCreate(String, UriKind, Uri)

Erstellt mit der angegebenen Uri-Instanz und einer String einen neuen UriKind.Creates a new Uri using the specified String instance and a UriKind.

TryCreate(Uri, String, Uri)

Erstellt mit der angegebenen Basis und den relativen Uri-Instanzen einen neuen String.Creates a new Uri using the specified base and relative String instances.

TryCreate(Uri, Uri, Uri)

Erstellt mit der angegebenen Basis und den relativen Uri-Instanzen einen neuen Uri.Creates a new Uri using the specified base and relative Uri instances.

Unescape(String)

Konvertiert die angegebene Zeichenfolge, indem alle Escapesequenzen durch die entsprechende Darstellung ohne Escapezeichen ersetzt werden.Converts the specified string by replacing any escape sequences with their unescaped representation.

UnescapeDataString(String)

Konvertiert eine Zeichenfolge in eine Darstellung ohne Escapezeichen.Converts a string to its unescaped representation.

Operatoren

Equality(Uri, Uri)

Bestimmt, ob zwei Uri-Instanzen denselben Wert haben.Determines whether two Uri instances have the same value.

Inequality(Uri, Uri)

Bestimmt, ob zwei Uri-Instanzen verschiedene Werte haben.Determines whether two Uri instances do not have the same value.

Explizite Schnittstellenimplementierungen

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Gibt die Daten zurück, die zum Serialisieren der aktuellen Instanz benötigt werden.Returns the data needed to serialize the current instance.

Gilt für:

Siehe auch