Freigeben über


Uri Klasse

Definition

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

public ref class Uri
public ref class Uri : System::Runtime::Serialization::ISerializable
public ref class Uri : ISpanFormattable, System::Runtime::Serialization::ISerializable
public ref class Uri : IEquatable<Uri ^>, ISpanFormattable, System::Runtime::Serialization::ISerializable
public ref class Uri : MarshalByRefObject, System::Runtime::Serialization::ISerializable
public class Uri
public class Uri : System.Runtime.Serialization.ISerializable
public class Uri : ISpanFormattable, System.Runtime.Serialization.ISerializable
public class Uri : IEquatable<Uri>, ISpanFormattable, System.Runtime.Serialization.ISerializable
[System.Serializable]
public class Uri : MarshalByRefObject, System.Runtime.Serialization.ISerializable
[System.Serializable]
[System.ComponentModel.TypeConverter(typeof(System.UriTypeConverter))]
public class Uri : System.Runtime.Serialization.ISerializable
type Uri = class
type Uri = class
    interface ISerializable
type Uri = class
    interface ISpanFormattable
    interface IFormattable
    interface ISerializable
type Uri = class
    interface IFormattable
    interface ISpanFormattable
    interface IEquatable<Uri>
    interface ISerializable
[<System.Serializable>]
type Uri = class
    inherit MarshalByRefObject
    interface ISerializable
[<System.Serializable>]
[<System.ComponentModel.TypeConverter(typeof(System.UriTypeConverter))>]
type Uri = class
    interface ISerializable
Public Class Uri
Public Class Uri
Implements ISerializable
Public Class Uri
Implements ISerializable, ISpanFormattable
Public Class Uri
Implements IEquatable(Of Uri), ISerializable, ISpanFormattable
Public Class Uri
Inherits MarshalByRefObject
Implements ISerializable
Vererbung
Uri
Vererbung
Attribute
Implementiert

Beispiele

Im folgenden Beispiel wird eine Instanz der Uri Klasse erstellt und zum Ausführen einer GET-Anforderung mit HttpClientverwendet.

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

// HttpClient lifecycle management best practices:
// https://learn.microsoft.com/dotnet/fundamentals/networking/http/httpclient-guidelines#recommended-use
HttpClient^ client = gcnew HttpClient;
HttpRequestMessage^ request = gcnew HttpRequestMessage(HttpMethod::Get, siteUri);
HttpResponseMessage^ response = client->Send(request);
Uri siteUri = new Uri("http://www.contoso.com/");

// HttpClient lifecycle management best practices:
// https://learn.microsoft.com/dotnet/fundamentals/networking/http/httpclient-guidelines#recommended-use
HttpClient client = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, siteUri);
HttpResponseMessage response = client.Send(request);
let siteUri = Uri "http://www.contoso.com/"

// HttpClient lifecycle management best practices:
// https://learn.microsoft.com/dotnet/fundamentals/networking/http/httpclient-guidelines#recommended-use
use client = new HttpClient ()
use request = new HttpRequestMessage (HttpMethod.Get, siteUri)
use response = client.Send request
Dim siteUri As New Uri("http://www.contoso.com/")

' HttpClient lifecycle management best practices:
' https://learn.microsoft.com/dotnet/fundamentals/networking/http/httpclient-guidelines#recommended-use
Dim client As New HttpClient()
Dim request As New HttpRequestMessage(HttpMethod.Get, siteUri)
Dim response As HttpResponseMessage = client.Send(request)

Der folgende Codeausschnitt zeigt Beispielwerte der verschiedenen Eigenschaften der Klasse.

Uri uri = new Uri("https://user:password@www.contoso.com:80/Home/Index.htm?q1=v1&q2=v2#FragmentName");

Console.WriteLine($"AbsolutePath: {uri.AbsolutePath}");
Console.WriteLine($"AbsoluteUri: {uri.AbsoluteUri}");
Console.WriteLine($"DnsSafeHost: {uri.DnsSafeHost}");
Console.WriteLine($"Fragment: {uri.Fragment}");
Console.WriteLine($"Host: {uri.Host}");
Console.WriteLine($"HostNameType: {uri.HostNameType}");
Console.WriteLine($"IdnHost: {uri.IdnHost}");
Console.WriteLine($"IsAbsoluteUri: {uri.IsAbsoluteUri}");
Console.WriteLine($"IsDefaultPort: {uri.IsDefaultPort}");
Console.WriteLine($"IsFile: {uri.IsFile}");
Console.WriteLine($"IsLoopback: {uri.IsLoopback}");
Console.WriteLine($"IsUnc: {uri.IsUnc}");
Console.WriteLine($"LocalPath: {uri.LocalPath}");
Console.WriteLine($"OriginalString: {uri.OriginalString}");
Console.WriteLine($"PathAndQuery: {uri.PathAndQuery}");
Console.WriteLine($"Port: {uri.Port}");
Console.WriteLine($"Query: {uri.Query}");
Console.WriteLine($"Scheme: {uri.Scheme}");
Console.WriteLine($"Segments: {string.Join(", ", uri.Segments)}");
Console.WriteLine($"UserEscaped: {uri.UserEscaped}");
Console.WriteLine($"UserInfo: {uri.UserInfo}");

// AbsolutePath: /Home/Index.htm
// AbsoluteUri: https://user:password@www.contoso.com:80/Home/Index.htm?q1=v1&q2=v2#FragmentName
// DnsSafeHost: www.contoso.com
// Fragment: #FragmentName
// Host: www.contoso.com
// HostNameType: Dns
// IdnHost: www.contoso.com
// IsAbsoluteUri: True
// IsDefaultPort: False
// IsFile: False
// IsLoopback: False
// IsUnc: False
// LocalPath: /Home/Index.htm
// OriginalString: https://user:password@www.contoso.com:80/Home/Index.htm?q1=v1&q2=v2#FragmentName
// PathAndQuery: /Home/Index.htm?q1=v1&q2=v2
// Port: 80
// Query: ?q1=v1&q2=v2
// Scheme: https
// Segments: /, Home/, Index.htm
// UserEscaped: False
// UserInfo: user:password
let uri = Uri "https://user:password@www.contoso.com:80/Home/Index.htm?q1=v1&q2=v2#FragmentName"

printfn $"AbsolutePath: {uri.AbsolutePath}"
printfn $"AbsoluteUri: {uri.AbsoluteUri}"
printfn $"DnsSafeHost: {uri.DnsSafeHost}"
printfn $"Fragment: {uri.Fragment}"
printfn $"Host: {uri.Host}"
printfn $"HostNameType: {uri.HostNameType}"
printfn $"IdnHost: {uri.IdnHost}"
printfn $"IsAbsoluteUri: {uri.IsAbsoluteUri}"
printfn $"IsDefaultPort: {uri.IsDefaultPort}"
printfn $"IsFile: {uri.IsFile}"
printfn $"IsLoopback: {uri.IsLoopback}"
printfn $"IsUnc: {uri.IsUnc}"
printfn $"LocalPath: {uri.LocalPath}"
printfn $"OriginalString: {uri.OriginalString}"
printfn $"PathAndQuery: {uri.PathAndQuery}"
printfn $"Port: {uri.Port}"
printfn $"Query: {uri.Query}"
printfn $"Scheme: {uri.Scheme}"
printfn $"""Segments: {String.Join(", ", uri.Segments)}"""
printfn $"UserEscaped: {uri.UserEscaped}"
printfn $"UserInfo: {uri.UserInfo}"

// AbsolutePath: /Home/Index.htm
// AbsoluteUri: https://user:password@www.contoso.com:80/Home/Index.htm?q1=v1&q2=v2#FragmentName
// DnsSafeHost: www.contoso.com
// Fragment: #FragmentName
// Host: www.contoso.com
// HostNameType: Dns
// IdnHost: www.contoso.com
// IsAbsoluteUri: True
// IsDefaultPort: False
// IsFile: False
// IsLoopback: False
// IsUnc: False
// LocalPath: /Home/Index.htm
// OriginalString: https://user:password@www.contoso.com:80/Home/Index.htm?q1=v1&q2=v2#FragmentName
// PathAndQuery: /Home/Index.htm?q1=v1&q2=v2
// Port: 80
// Query: ?q1=v1&q2=v2
// Scheme: https
// Segments: /, Home/, Index.htm
// UserEscaped: False
// UserInfo: user:password

Hinweise

Weitere Informationen zu dieser API finden Sie unter Ergänzende API-Hinweise für URI-.

Konstruktoren

Uri(SerializationInfo, StreamingContext)
Veraltet.

Initialisiert eine neue Instanz der Uri Klasse aus den angegebenen Instanzen der klassen SerializationInfo und StreamingContext.

Uri(String)

Initialisiert eine neue Instanz der Uri Klasse mit dem angegebenen URI.

Uri(String, Boolean)
Veraltet.
Veraltet.
Veraltet.

Initialisiert eine neue Instanz der Uri-Klasse mit dem angegebenen URI mit explizitem Steuerelement für das Escapen von Zeichen.

Uri(String, UriCreationOptions)

Initialisiert eine neue Instanz der Uri Klasse mit dem angegebenen URI und zusätzlichen UriCreationOptions.

Uri(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, absoluter URI oder unbestimmt ist.

Uri(Uri, String)

Initialisiert eine neue Instanz der Uri Klasse basierend auf dem angegebenen Basis-URI und der relativen URI-Zeichenfolge.

Uri(Uri, String, Boolean)
Veraltet.
Veraltet.
Veraltet.

Initialisiert eine neue Instanz der Uri-Klasse basierend auf der angegebenen Basis und relativen URIs, wobei die explizite Kontrolle über das Escapen von Zeichen erfolgt.

Uri(Uri, Uri)

Initialisiert eine neue Instanz der Uri Klasse basierend auf der Kombination einer angegebenen Basisinstanz Uri Instanz und einer relativen Uri Instanz.

Felder

SchemeDelimiter

Gibt die Zeichen an, die das Kommunikationsprotokollschema vom Adressteil des URI trennen. Dieses Feld ist schreibgeschützt.

UriSchemeFile

Gibt an, dass der URI ein Zeiger auf eine Datei ist. Dieses Feld ist schreibgeschützt.

UriSchemeFtp

Gibt an, dass über das File Transfer Protocol (FTP) auf den URI zugegriffen wird. Dieses Feld ist schreibgeschützt.

UriSchemeFtps

Gibt an, dass auf den URI über das File Transfer Protocol Secure (FTPS) zugegriffen wird. Dieses Feld ist schreibgeschützt.

UriSchemeGopher

Gibt an, dass über das Gopher-Protokoll auf den URI zugegriffen wird. Dieses Feld ist schreibgeschützt.

UriSchemeHttp

Gibt an, dass auf den URI über das Hypertext Transfer Protocol (HTTP) zugegriffen wird. Dieses Feld ist schreibgeschützt.

UriSchemeHttps

Gibt an, dass auf den URI über das Secure Hypertext Transfer Protocol (HTTPS) zugegriffen wird. Dieses Feld ist schreibgeschützt.

UriSchemeMailto

Gibt an, dass der URI eine E-Mail-Adresse ist und über das Simple Mail Transport Protocol (SMTP) aufgerufen wird. Dieses Feld ist schreibgeschützt.

UriSchemeNetPipe

Gibt an, dass auf den URI über das NetPipe-Schema zugegriffen wird, das von Windows Communication Foundation (WCF) verwendet wird. Dieses Feld ist schreibgeschützt.

UriSchemeNetTcp

Gibt an, dass auf den URI über das NetTcp-Schema zugegriffen wird, das von Windows Communication Foundation (WCF) verwendet wird. Dieses Feld ist schreibgeschützt.

UriSchemeNews

Gibt an, dass der URI eine Internetnachrichtengruppe ist und über das Network News Transport Protocol (NNTP) aufgerufen wird. Dieses Feld ist schreibgeschützt.

UriSchemeNntp

Gibt an, dass der URI eine Internetnachrichtengruppe ist und über das Network News Transport Protocol (NNTP) aufgerufen wird. Dieses Feld ist schreibgeschützt.

UriSchemeSftp

Gibt an, dass über das SSH File Transfer Protocol (SFTP) auf den URI zugegriffen wird. Dieses Feld ist schreibgeschützt.

UriSchemeSsh

Gibt an, dass über das Secure Socket Shell-Protokoll (SSH) auf den URI zugegriffen wird. Dieses Feld ist schreibgeschützt.

UriSchemeTelnet

Gibt an, dass über das Telnet-Protokoll auf den URI zugegriffen wird. Dieses Feld ist schreibgeschützt.

UriSchemeWs

Gibt an, dass über das WebSocket-Protokoll (WS) auf den URI zugegriffen wird. Dieses Feld ist schreibgeschützt.

UriSchemeWss

Gibt an, dass auf den URI über das WebSocket Secure-Protokoll (WSS) zugegriffen wird. Dieses Feld ist schreibgeschützt.

Eigenschaften

AbsolutePath

Ruft den absoluten Pfad des URI ab.

AbsoluteUri

Ruft den absoluten URI ab.

Authority

Ruft den Dns-Hostnamen (Domain Name System) oder die IP-Adresse und die Portnummer für einen Server ab.

DnsSafeHost

Ruft einen Hostnamen ab, der bei Bedarf nicht gescapet werden kann, um die DNS-Auflösung zu verwenden.

Fragment

Ruft das escaped URI-Fragment ab, einschließlich des führenden Zeichens "#", wenn nicht leer.

Host

Ruft die Hostkomponente dieser Instanz ab.

HostNameType

Ruft den Typ des Hostnamens ab, der im URI angegeben ist.

IdnHost

Ruft den RFC 3490-kompatiblen internationalen Domänennamen des Hosts ab, wobei Punycode entsprechend verwendet wird. Diese Zeichenfolge, nachdem sie bei Bedarf nicht gescapet wurde, ist sicher für die DNS-Auflösung zu verwenden.

IsAbsoluteUri

Ruft einen Wert ab, der angibt, ob die Uri Instanz absolut ist.

IsDefaultPort

Ruft einen Wert ab, der angibt, ob der Portwert des URI der Standardwert für dieses Schema ist.

IsFile

Ruft einen Wert ab, der angibt, ob die angegebene Uri ein Datei-URI ist.

IsLoopback

Ruft einen Wert ab, der angibt, ob die angegebene Uri auf den lokalen Host verweist.

IsUnc

Ruft einen Wert ab, der angibt, ob die angegebene Uri ein UNC-Pfad (Universal Naming Convention) ist.

LocalPath

Ruft eine lokale Betriebssystemdarstellung eines Dateinamens ab.

OriginalString

Ruft die ursprüngliche URI-Zeichenfolge ab, die an den Uri-Konstruktor übergeben wurde.

PathAndQuery

Ruft die eigenschaften AbsolutePath und Query durch ein Fragezeichen (?) getrennt ab.

Port

Ruft die Portnummer dieses URI ab.

Query

Ruft alle Abfrageinformationen ab, die im angegebenen URI enthalten sind, einschließlich des führenden Zeichens "?", wenn nicht leer.

Scheme

Ruft den Schemanamen für diesen URI ab.

Segments

Ruft ein Array ab, das die Pfadsegmente enthält, aus denen der angegebene URI besteht.

UserEscaped

Ruft einen Wert ab, der angibt, ob die URI-Zeichenfolge vor der Erstellung der Uri Instanz vollständig escapet wurde.

UserInfo

Ruft den Benutzernamen, das Kennwort oder andere benutzerspezifische Informationen ab, die dem angegebenen URI zugeordnet sind.

Methoden

Canonicalize()
Veraltet.
Veraltet.
Veraltet.

Konvertiert den intern gespeicherten URI in kanonische Form.

CheckHostName(String)

Bestimmt, ob der angegebene Hostname ein gültiger DNS-Name ist.

CheckSchemeName(String)

Bestimmt, ob der angegebene Schemaname gültig ist.

CheckSecurity()
Veraltet.
Veraltet.
Veraltet.

Das Aufrufen dieser Methode hat keine Auswirkung.

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

Vergleicht die angegebenen Teile von zwei URIs mithilfe der angegebenen Vergleichsregeln.

CreateObjRef(Type)

Erstellt ein Objekt, das alle relevanten Informationen enthält, die zum Generieren eines Proxys erforderlich sind, der für die Kommunikation mit einem Remoteobjekt verwendet wird.

(Geerbt von MarshalByRefObject)
Equals(Object)

Vergleicht zwei Uri Instanzen für Gleichheit.

Equals(Uri)

Vergleicht zwei Uri Instanzen für Gleichheit.

Escape()
Veraltet.
Veraltet.
Veraltet.

Konvertiert alle unsicheren oder reservierten Zeichen in der Pfadkomponente in ihre hexadezimalen Zeichendarstellungen.

EscapeDataString(ReadOnlySpan<Char>)

Wandelt eine Spanne in die Escapedarstellung um.

EscapeDataString(String)

Konvertiert eine Zeichenfolge in die escaped-Darstellung.

EscapeString(String)
Veraltet.
Veraltet.
Veraltet.
Veraltet.

Konvertiert eine Zeichenfolge in die escaped-Darstellung.

EscapeUriString(String)
Veraltet.
Veraltet.

Konvertiert eine URI-Zeichenfolge in die Escapedarstellung.

FromHex(Char)

Ruft den Dezimalwert einer Hexadezimalziffer ab.

GetComponents(UriComponents, UriFormat)

Ruft die angegebenen Komponenten der aktuellen Instanz mithilfe der angegebenen Escapezeichen für Sonderzeichen ab.

GetHashCode()

Ruft den Hashcode für den URI ab.

GetLeftPart(UriPartial)

Ruft den angegebenen Teil einer Uri Instanz ab.

GetLifetimeService()
Veraltet.

Ruft das aktuelle Lebensdauerdienstobjekt ab, das die Lebensdauerrichtlinie für diese Instanz steuert.

(Geerbt von MarshalByRefObject)
GetObjectData(SerializationInfo, StreamingContext)

Gibt die zum Serialisieren der aktuellen Instanz erforderlichen Daten zurück.

GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
HexEscape(Char)

Wandelt ein angegebenes Zeichen in seine hexadezimale Entsprechung um.

HexUnescape(String, Int32)

Wandelt eine angegebene hexadezimale Darstellung eines Zeichens in das Zeichen um.

InitializeLifetimeService()
Veraltet.

Ruft ein Lebensdauerdienstobjekt ab, um die Lebensdauerrichtlinie für diese Instanz zu steuern.

(Geerbt von MarshalByRefObject)
IsBadFileSystemCharacter(Char)
Veraltet.
Veraltet.
Veraltet.

Gibt an, ob ein Zeichen in einem Dateisystemnamen ungültig ist.

IsBaseOf(Uri)

Bestimmt, ob die aktuelle Uri Instanz eine Basis der angegebenen Uri Instanz ist.

IsExcludedCharacter(Char)
Veraltet.
Veraltet.
Veraltet.

Bestimmt, ob das angegebene Zeichen escapezeichen sein soll.

IsHexDigit(Char)

Bestimmt, ob ein angegebenes Zeichen eine gültige hexadezimale Ziffer ist.

IsHexEncoding(String, Int32)

Bestimmt, ob ein Zeichen in einer Zeichenfolge hexadezimal codiert ist.

IsReservedCharacter(Char)
Veraltet.
Veraltet.
Veraltet.

Bestimmt, ob das angegebene Zeichen ein reserviertes Zeichen ist.

IsWellFormedOriginalString()

Gibt an, ob die zum Erstellen dieser Uri verwendete Zeichenfolge wohlgeformt war und keine weitere Flucht erfordert.

IsWellFormedUriString(String, UriKind)

Gibt an, ob die Zeichenfolge wohlgeformt ist, indem Sie versuchen, einen URI mit der Zeichenfolge zu erstellen, und stellt sicher, dass die Zeichenfolge keine weitere Escapeung erfordert.

MakeRelative(Uri)
Veraltet.
Veraltet.
Veraltet.
Veraltet.

Bestimmt den Unterschied zwischen zwei Uri Instanzen.

MakeRelativeUri(Uri)

Bestimmt den Unterschied zwischen zwei Uri Instanzen.

MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
MemberwiseClone(Boolean)

Erstellt eine flache Kopie des aktuellen MarshalByRefObject-Objekts.

(Geerbt von MarshalByRefObject)
Parse()
Veraltet.
Veraltet.
Veraltet.

Analysiert den URI der aktuellen Instanz, um sicherzustellen, dass er alle Teile enthält, die für einen gültigen URI erforderlich sind.

ToString()

Ruft eine kanonische Zeichenfolgendarstellung für die angegebene Uri Instanz ab.

TryCreate(String, UriCreationOptions, Uri)

Erstellt eine neue Uri mithilfe der angegebenen String Instanz und UriCreationOptions.

TryCreate(String, UriKind, Uri)

Erstellt eine neue Uri mithilfe der angegebenen String Instanz und einer UriKind.

TryCreate(Uri, String, Uri)

Erstellt eine neue Uri mithilfe der angegebenen Basis und relativen String Instanzen.

TryCreate(Uri, Uri, Uri)

Erstellt eine neue Uri mithilfe der angegebenen Basis und relativen Uri Instanzen.

TryEscapeDataString(ReadOnlySpan<Char>, Span<Char>, Int32)

Versucht, eine Spanne in die escaped-Darstellung zu konvertieren.

TryFormat(Span<Char>, Int32)

Versucht, eine kanonische Zeichenfolgendarstellung für die Uri Instanz in die angegebene Spanne zu formatieren.

TryUnescapeDataString(ReadOnlySpan<Char>, Span<Char>, Int32)

Es wird versucht, eine Spanne in ihre unescaped-Darstellung umzuwandeln.

Unescape(String)
Veraltet.
Veraltet.
Veraltet.

Wandelt die angegebene Zeichenfolge um, indem alle Escapesequenzen durch ihre nicht dargestellte Darstellung ersetzt werden.

UnescapeDataString(ReadOnlySpan<Char>)

Wandelt eine Spanne in die nicht dargestellte Darstellung um.

UnescapeDataString(String)

Konvertiert eine Zeichenfolge in die nicht gescapete Darstellung.

Operatoren

Equality(Uri, Uri)

Bestimmt, ob zwei Uri Instanzen denselben Wert aufweisen.

Inequality(Uri, Uri)

Bestimmt, ob zwei Uri Instanzen nicht denselben Wert aufweisen.

Explizite Schnittstellenimplementierungen

IFormattable.ToString(String, IFormatProvider)

Formatiert den Wert der aktuellen Instanz mithilfe des angegebenen Formats.

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Gibt die zum Serialisieren der aktuellen Instanz erforderlichen Daten zurück.

ISpanFormattable.TryFormat(Span<Char>, Int32, ReadOnlySpan<Char>, IFormatProvider)

Versucht, den Wert der aktuellen Instanz in die bereitgestellte Zeichenspanne zu formatieren.

Gilt für:

Threadsicherheit

Alle Elemente von Uri sind threadsicher und können gleichzeitig aus mehreren Threads verwendet werden.

Weitere Informationen