Sdílet prostřednictvím


Uri Třída

Definice

Poskytuje reprezentaci objektu identifikátoru URI (Uniform Resource Identifier) a snadný přístup k částem identifikátoru URI.

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
Dědičnost
Uri
Dědičnost
Atributy
Implementuje

Příklady

Následující příklad vytvoří instanci třídy Uri a použije ji k provedení požadavku GET s HttpClient.

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)

Následující fragment kódu ukazuje ukázkové hodnoty různých vlastností třídy.

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

Poznámky

Další informace o tomto rozhraní API naleznete v tématu Doplňkové poznámky k rozhraní API pro identifikátor URI.

Konstruktory

Uri(SerializationInfo, StreamingContext)
Zastaralé.

Inicializuje novou instanci třídy Uri ze zadaných instancí SerializationInfo a StreamingContext třídy.

Uri(String)

Inicializuje novou instanci Uri třídy pomocí zadaného identifikátoru URI.

Uri(String, Boolean)
Zastaralé.
Zastaralé.
Zastaralé.

Inicializuje novou instanci Uri třídy se zadaným identifikátorem URI s explicitním ovládáním znakového escapingu.

Uri(String, UriCreationOptions)

Inicializuje novou instanci třídy Uri se zadaným identifikátorem URI a dalším UriCreationOptions.

Uri(String, UriKind)

Inicializuje novou instanci Uri třídy pomocí zadaného identifikátoru URI. Tento konstruktor umožňuje určit, jestli je řetězec identifikátoru URI relativní identifikátor URI, absolutní identifikátor URI nebo je neurčitý.

Uri(Uri, String)

Inicializuje novou instanci Uri třídy na základě zadaného základního identifikátoru URI a relativního řetězce identifikátoru URI.

Uri(Uri, String, Boolean)
Zastaralé.
Zastaralé.
Zastaralé.

Inicializuje novou instanci třídy Uri na základě zadané základní a relativní identifikátory URI s explicitním ovládáním znakového escapingu.

Uri(Uri, Uri)

Inicializuje novou instanci třídy Uri na základě kombinace zadané základní Uri instance a relativní Uri instance.

Pole

SchemeDelimiter

Určuje znaky, které oddělují schéma komunikačního protokolu od části adresy identifikátoru URI. Toto pole je jen pro čtení.

UriSchemeFile

Určuje, že identifikátor URI je ukazatel na soubor. Toto pole je jen pro čtení.

UriSchemeFtp

Určuje, že identifikátor URI je přístupný prostřednictvím protokolu FTP (File Transfer Protocol). Toto pole je jen pro čtení.

UriSchemeFtps

Určuje, že identifikátor URI je přístupný prostřednictvím protokolu FTPS (File Transfer Protocol Secure). Toto pole je jen pro čtení.

UriSchemeGopher

Určuje, že identifikátor URI je přístupný prostřednictvím protokolu Gopher. Toto pole je jen pro čtení.

UriSchemeHttp

Určuje, že identifikátor URI je přístupný prostřednictvím protokolu HTTP (Hypertext Transfer Protocol). Toto pole je jen pro čtení.

UriSchemeHttps

Určuje, že identifikátor URI je přístupný prostřednictvím protokolu HTTPS (Secure Hypertext Transfer Protocol). Toto pole je jen pro čtení.

UriSchemeMailto

Určuje, že identifikátor URI je e-mailová adresa a je přístupný prostřednictvím protokolu SMTP (Simple Mail Transport Protocol). Toto pole je jen pro čtení.

UriSchemeNetPipe

Určuje, že k identifikátoru URI se přistupuje prostřednictvím schématu NetPipe používaného službou Windows Communication Foundation (WCF). Toto pole je jen pro čtení.

UriSchemeNetTcp

Určuje, že identifikátor URI je přístupný prostřednictvím schématu NetTcp používaného službou Windows Communication Foundation (WCF). Toto pole je jen pro čtení.

UriSchemeNews

Určuje, že identifikátor URI je internetová skupina zpráv a je přístupná prostřednictvím protokolu NNTP (Network News Transport Protocol). Toto pole je jen pro čtení.

UriSchemeNntp

Určuje, že identifikátor URI je internetová skupina zpráv a je přístupná prostřednictvím protokolu NNTP (Network News Transport Protocol). Toto pole je jen pro čtení.

UriSchemeSftp

Určuje, že identifikátor URI je přístupný prostřednictvím protokolu SSH File Transfer Protocol (SFTP). Toto pole je jen pro čtení.

UriSchemeSsh

Určuje, že k identifikátoru URI se přistupuje přes protokol SSH (Secure Socket Shell). Toto pole je jen pro čtení.

UriSchemeTelnet

Určuje, že identifikátor URI je přístupný prostřednictvím protokolu Telnet. Toto pole je jen pro čtení.

UriSchemeWs

Určuje, že k identifikátoru URI se přistupuje přes protokol WS (WebSocket). Toto pole je jen pro čtení.

UriSchemeWss

Určuje, že k identifikátoru URI se přistupuje prostřednictvím protokolu WSSocket (WebSocket Secure Protocol). Toto pole je jen pro čtení.

Vlastnosti

AbsolutePath

Získá absolutní cestu identifikátoru URI.

AbsoluteUri

Získá absolutní identifikátor URI.

Authority

Získá název hostitele dns (Domain Name System) nebo IP adresu a číslo portu pro server.

DnsSafeHost

Získá název hostitele, který po zrušení v případě potřeby je bezpečné použít pro překlad DNS.

Fragment

Získá řídicí fragment identifikátoru URI, včetně úvodního znaku #, pokud není prázdný.

Host

Získá hostitel komponentu této instance.

HostNameType

Získá typ názvu hostitele zadaného v identifikátoru URI.

IdnHost

Získá RFC 3490 kompatibilní mezinárodní název domény hostitele pomocí punycode podle potřeby. Tento řetězec po zrušení v případě potřeby je bezpečný pro překlad DNS.

IsAbsoluteUri

Získá hodnotu, která určuje, zda Uri instance je absolutní.

IsDefaultPort

Získá hodnotu, která určuje, zda hodnota portu identifikátoru URI je výchozí pro toto schéma.

IsFile

Získá hodnotu, která určuje, zda zadaný Uri je identifikátor URI souboru.

IsLoopback

Získá hodnotu, která určuje, zda zadaný Uri odkazuje na místního hostitele.

IsUnc

Získá hodnotu, která určuje, zda zadaný Uri je univerzální cesta k pojmenování (UNC).

LocalPath

Získá místní reprezentaci operačního systému názvu souboru.

OriginalString

Získá původní řetězec identifikátoru URI, který byl předán konstruktoru Uri.

PathAndQuery

Získá AbsolutePath a Query vlastnosti oddělené otazníkem (?).

Port

Získá číslo portu tohoto identifikátoru URI.

Query

Získá všechny informace o dotazu obsažené v zadaném identifikátoru URI, včetně úvodního znaku "?", pokud není prázdný.

Scheme

Získá název schématu pro tento identifikátor URI.

Segments

Získá pole obsahující segmenty cesty, které tvoří zadaný identifikátor URI.

UserEscaped

Získá hodnotu, která označuje, zda byl řetězec identifikátoru URI zcela ukazován před vytvořením instance Uri.

UserInfo

Získá uživatelské jméno, heslo nebo jiné informace specifické pro uživatele přidružené k zadanému identifikátoru URI.

Metody

Canonicalize()
Zastaralé.
Zastaralé.
Zastaralé.

Převede interně uložený identifikátor URI na kanonický formulář.

CheckHostName(String)

Určuje, zda je zadaný název hostitele platným názvem DNS.

CheckSchemeName(String)

Určuje, zda je zadaný název schématu platný.

CheckSecurity()
Zastaralé.
Zastaralé.
Zastaralé.

Volání této metody nemá žádný vliv.

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

Porovná zadané části dvou identifikátorů URI pomocí zadaných srovnávacích pravidel.

CreateObjRef(Type)

Vytvoří objekt, který obsahuje všechny relevantní informace potřebné k vygenerování proxy serveru sloužícího ke komunikaci se vzdáleným objektem.

(Zděděno od MarshalByRefObject)
Equals(Object)

Porovná dvě Uri instance rovnosti.

Equals(Uri)

Porovná dvě Uri instance rovnosti.

Escape()
Zastaralé.
Zastaralé.
Zastaralé.

Převede všechny nebezpečné nebo rezervované znaky v komponentě cesty na jejich šestnáctkové reprezentace znaků.

EscapeDataString(ReadOnlySpan<Char>)

Převede rozsah na jeho řídicí reprezentaci.

EscapeDataString(String)

Převede řetězec na jeho řídicí reprezentaci.

EscapeString(String)
Zastaralé.
Zastaralé.
Zastaralé.
Zastaralé.

Převede řetězec na jeho řídicí reprezentaci.

EscapeUriString(String)
Zastaralé.
Zastaralé.

Převede řetězec identifikátoru URI na jeho řídicí reprezentaci.

FromHex(Char)

Získá desetinnou hodnotu šestnáctkové číslice.

GetComponents(UriComponents, UriFormat)

Získá zadané součásti aktuální instance pomocí zadané escaping pro speciální znaky.

GetHashCode()

Získá hash kód pro identifikátor URI.

GetLeftPart(UriPartial)

Získá zadanou část instance Uri.

GetLifetimeService()
Zastaralé.

Načte objekt služby aktuální životnosti, který řídí zásady životnosti pro tuto instanci.

(Zděděno od MarshalByRefObject)
GetObjectData(SerializationInfo, StreamingContext)

Vrátí data potřebná k serializaci aktuální instance.

GetType()

Získá Type aktuální instance.

(Zděděno od Object)
HexEscape(Char)

Převede zadaný znak na jeho šestnáctkový ekvivalent.

HexUnescape(String, Int32)

Převede zadanou šestnáctkovou reprezentaci znaku na znak.

InitializeLifetimeService()
Zastaralé.

Získá objekt služby životnosti pro řízení zásad životnosti pro tuto instanci.

(Zděděno od MarshalByRefObject)
IsBadFileSystemCharacter(Char)
Zastaralé.
Zastaralé.
Zastaralé.

Určuje, zda je znak neplatný v názvu systému souborů.

IsBaseOf(Uri)

Určuje, zda aktuální Uri instance je základem zadané Uri instance.

IsExcludedCharacter(Char)
Zastaralé.
Zastaralé.
Zastaralé.

Určuje, zda má být zadaný znak řídicí znak.

IsHexDigit(Char)

Určuje, zda je zadaný znak platnou šestnáctkovou číslicí.

IsHexEncoding(String, Int32)

Určuje, zda je znak v řetězci šestnáctkový kódován.

IsReservedCharacter(Char)
Zastaralé.
Zastaralé.
Zastaralé.

Určuje, zda je zadaný znak vyhrazeným znakem.

IsWellFormedOriginalString()

Určuje, zda řetězec použitý k vytvoření tohoto Uri byl správně formátován a nevyžaduje další escaping.

IsWellFormedUriString(String, UriKind)

Určuje, zda je řetězec správně vytvořen pokusem o vytvoření identifikátoru URI s řetězcem a zajišťuje, že řetězec nevyžaduje další escaping.

MakeRelative(Uri)
Zastaralé.
Zastaralé.
Zastaralé.
Zastaralé.

Určuje rozdíl mezi dvěma Uri instancemi.

MakeRelativeUri(Uri)

Určuje rozdíl mezi dvěma Uri instancemi.

MemberwiseClone()

Vytvoří mělkou kopii aktuálního Object.

(Zděděno od Object)
MemberwiseClone(Boolean)

Vytvoří mělkou kopii aktuálního objektu MarshalByRefObject.

(Zděděno od MarshalByRefObject)
Parse()
Zastaralé.
Zastaralé.
Zastaralé.

Parsuje identifikátor URI aktuální instance, aby se zajistilo, že obsahuje všechny části potřebné pro platný identifikátor URI.

ToString()

Získá kanonické řetězcové vyjádření pro zadanou instanci Uri.

TryCreate(String, UriCreationOptions, Uri)

Vytvoří nový Uri pomocí zadané instance String a UriCreationOptions.

TryCreate(String, UriKind, Uri)

Vytvoří nový Uri pomocí zadané instance String a UriKind.

TryCreate(Uri, String, Uri)

Vytvoří novou Uri pomocí zadané základní a relativní instance String.

TryCreate(Uri, Uri, Uri)

Vytvoří novou Uri pomocí zadané základní a relativní instance Uri.

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

Pokusí se převést rozsah na jeho řídicí reprezentaci.

TryFormat(Span<Char>, Int32)

Pokusí se naformátovat kanonické řetězcové vyjádření pro instanci Uri do zadaného rozsahu.

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

Pokusí se převést rozsah na jeho neuskutečené vyjádření.

Unescape(String)
Zastaralé.
Zastaralé.
Zastaralé.

Převede zadaný řetězec nahrazením libovolných řídicích sekvencí jejich unescaped reprezentace.

UnescapeDataString(ReadOnlySpan<Char>)

Převede rozsah na jeho neuskutečené znázornění.

UnescapeDataString(String)

Převede řetězec na jeho nepřesnou reprezentaci.

Operátory

Equality(Uri, Uri)

Určuje, zda mají dvě Uri instance stejnou hodnotu.

Inequality(Uri, Uri)

Určuje, zda dvě Uri instance nemají stejnou hodnotu.

Explicitní implementace rozhraní

IFormattable.ToString(String, IFormatProvider)

Naformátuje hodnotu aktuální instance pomocí zadaného formátu.

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Vrátí data potřebná k serializaci aktuální instance.

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

Pokusí se naformátovat hodnotu aktuální instance do zadaného rozsahu znaků.

Platí pro

Bezpečný přístup z více vláken

Všichni členové Uri jsou bezpečné pro přístup z více vláken a můžou se používat souběžně z více vláken.

Viz také