Condividi tramite


Uri Classe

Definizione

Fornisce una rappresentazione dell'oggetto di un URI (Uniform Resource Identifier) e un facile accesso alle parti dell'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
Ereditarietà
Uri
Ereditarietà
Attributi
Implementazioni

Esempio

Nell'esempio seguente viene creata un'istanza della classe Uri e viene usata per eseguire una richiesta GET con 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)

Il frammento di codice seguente mostra i valori di esempio delle varie proprietà della classe .

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

Commenti

Per altre informazioni su questa API, vedere osservazioni supplementari sull'API per l'URI.

Costruttori

Uri(SerializationInfo, StreamingContext)
Obsoleti.

Inizializza una nuova istanza della classe Uri dalle istanze specificate delle classi SerializationInfo e StreamingContext.

Uri(String)

Inizializza una nuova istanza della classe Uri con l'URI specificato.

Uri(String, Boolean)
Obsoleti.
Obsoleti.
Obsoleti.

Inizializza una nuova istanza della classe Uri con l'URI specificato, con il controllo esplicito dell'escape dei caratteri.

Uri(String, UriCreationOptions)

Inizializza una nuova istanza della classe Uri con l'URI specificato e altri UriCreationOptions.

Uri(String, UriKind)

Inizializza una nuova istanza della classe Uri con l'URI specificato. Questo costruttore consente di specificare se la stringa URI è un URI relativo, un URI assoluto o è indeterminato.

Uri(Uri, String)

Inizializza una nuova istanza della classe Uri in base all'URI di base e alla stringa URI relativa specificati.

Uri(Uri, String, Boolean)
Obsoleti.
Obsoleti.
Obsoleti.

Inizializza una nuova istanza della classe Uri in base alla base e agli URI relativi specificati, con il controllo esplicito dell'escape dei caratteri.

Uri(Uri, Uri)

Inizializza una nuova istanza della classe Uri in base alla combinazione di un'istanza di base Uri specificata e di un'istanza di Uri relativa.

Campi

SchemeDelimiter

Specifica i caratteri che separano lo schema del protocollo di comunicazione dalla parte dell'indirizzo dell'URI. Questo campo è di sola lettura.

UriSchemeFile

Specifica che l'URI è un puntatore a un file. Questo campo è di sola lettura.

UriSchemeFtp

Specifica che l'URI è accessibile tramite FTP (File Transfer Protocol). Questo campo è di sola lettura.

UriSchemeFtps

Specifica che l'URI è accessibile tramite FTPS (File Transfer Protocol Secure). Questo campo è di sola lettura.

UriSchemeGopher

Specifica che l'URI è accessibile tramite il protocollo Gopher. Questo campo è di sola lettura.

UriSchemeHttp

Specifica che l'URI è accessibile tramite HTTP (Hypertext Transfer Protocol). Questo campo è di sola lettura.

UriSchemeHttps

Specifica che l'URI è accessibile tramite SECURE Hypertext Transfer Protocol (HTTPS). Questo campo è di sola lettura.

UriSchemeMailto

Specifica che l'URI è un indirizzo di posta elettronica a cui si accede tramite il protocollo SMTP (Simple Mail Transport Protocol). Questo campo è di sola lettura.

UriSchemeNetPipe

Specifica che l'URI è accessibile tramite lo schema NetPipe usato da Windows Communication Foundation (WCF). Questo campo è di sola lettura.

UriSchemeNetTcp

Specifica che l'URI è accessibile tramite lo schema NetTcp usato da Windows Communication Foundation (WCF). Questo campo è di sola lettura.

UriSchemeNews

Specifica che l'URI è un gruppo di notizie Internet ed è accessibile tramite il protocollo NNTP (Network News Transport Protocol). Questo campo è di sola lettura.

UriSchemeNntp

Specifica che l'URI è un gruppo di notizie Internet ed è accessibile tramite il protocollo NNTP (Network News Transport Protocol). Questo campo è di sola lettura.

UriSchemeSftp

Specifica che l'URI è accessibile tramite SSH File Transfer Protocol (SFTP). Questo campo è di sola lettura.

UriSchemeSsh

Specifica che l'URI è accessibile tramite il protocollo SSH (Secure Socket Shell). Questo campo è di sola lettura.

UriSchemeTelnet

Specifica che l'URI è accessibile tramite il protocollo Telnet. Questo campo è di sola lettura.

UriSchemeWs

Specifica che l'URI è accessibile tramite il protocollo WebSocket (WS). Questo campo è di sola lettura.

UriSchemeWss

Specifica che l'URI è accessibile tramite il protocollo WebSocket Secure (WSS). Questo campo è di sola lettura.

Proprietà

AbsolutePath

Ottiene il percorso assoluto dell'URI.

AbsoluteUri

Ottiene l'URI assoluto.

Authority

Ottiene il nome host DNS (Domain Name System) o l'indirizzo IP e il numero di porta per un server.

DnsSafeHost

Ottiene un nome host che, dopo l'annullamento dell'escape, se necessario, è sicuro da usare per la risoluzione DNS.

Fragment

Ottiene il frammento di URI di escape, incluso il carattere '#' iniziale, se non vuoto.

Host

Ottiene il componente host di questa istanza.

HostNameType

Ottiene il tipo del nome host specificato nell'URI.

IdnHost

Ottiene il nome di dominio internazionale conforme a RFC 3490 dell'host, usando Punycode in base alle esigenze. Questa stringa, dopo essere stata annullata se necessario, è sicura da usare per la risoluzione DNS.

IsAbsoluteUri

Ottiene un valore che indica se l'istanza di Uri è assoluta.

IsDefaultPort

Ottiene un valore che indica se il valore della porta dell'URI è l'impostazione predefinita per questo schema.

IsFile

Ottiene un valore che indica se il Uri specificato è un URI di file.

IsLoopback

Ottiene un valore che indica se il Uri specificato fa riferimento all'host locale.

IsUnc

Ottiene un valore che indica se il Uri specificato è un percorso UNC (Universal Naming Convention).

LocalPath

Ottiene una rappresentazione del sistema operativo locale di un nome file.

OriginalString

Ottiene la stringa URI originale passata al costruttore Uri.

PathAndQuery

Ottiene le proprietà AbsolutePath e Query separate da un punto interrogativo (?).

Port

Ottiene il numero di porta di questo URI.

Query

Ottiene eventuali informazioni sulla query incluse nell'URI specificato, incluso il carattere iniziale '?' se non vuoto.

Scheme

Ottiene il nome dello schema per questo URI.

Segments

Ottiene una matrice contenente i segmenti di percorso che costituiscono l'URI specificato.

UserEscaped

Ottiene un valore che indica se la stringa URI è stata completamente preceduta da escape prima della creazione dell'istanza di Uri.

UserInfo

Ottiene il nome utente, la password o altre informazioni specifiche dell'utente associate all'URI specificato.

Metodi

Canonicalize()
Obsoleti.
Obsoleti.
Obsoleti.

Converte l'URI archiviato internamente in formato canonico.

CheckHostName(String)

Determina se il nome host specificato è un nome DNS valido.

CheckSchemeName(String)

Determina se il nome dello schema specificato è valido.

CheckSecurity()
Obsoleti.
Obsoleti.
Obsoleti.

La chiamata a questo metodo non ha alcun effetto.

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

Confronta le parti specificate di due URI usando le regole di confronto specificate.

CreateObjRef(Type)

Crea un oggetto che contiene tutte le informazioni pertinenti necessarie per generare un proxy utilizzato per comunicare con un oggetto remoto.

(Ereditato da MarshalByRefObject)
Equals(Object)

Confronta due istanze Uri per verificare l'uguaglianza.

Equals(Uri)

Confronta due istanze Uri per verificare l'uguaglianza.

Escape()
Obsoleti.
Obsoleti.
Obsoleti.

Converte tutti i caratteri non sicuri o riservati nel componente percorso nelle relative rappresentazioni di caratteri esadecimali.

EscapeDataString(ReadOnlySpan<Char>)

Converte un intervallo nella relativa rappresentazione di escape.

EscapeDataString(String)

Converte una stringa nella relativa rappresentazione di escape.

EscapeString(String)
Obsoleti.
Obsoleti.
Obsoleti.
Obsoleti.

Converte una stringa nella relativa rappresentazione di escape.

EscapeUriString(String)
Obsoleti.
Obsoleti.

Converte una stringa URI nella relativa rappresentazione di escape.

FromHex(Char)

Ottiene il valore decimale di una cifra esadecimale.

GetComponents(UriComponents, UriFormat)

Ottiene i componenti specificati dell'istanza corrente utilizzando l'escape specificato per i caratteri speciali.

GetHashCode()

Ottiene il codice hash per l'URI.

GetLeftPart(UriPartial)

Ottiene la parte specificata di un'istanza di Uri.

GetLifetimeService()
Obsoleti.

Recupera l'oggetto servizio di durata corrente che controlla i criteri di durata per questa istanza.

(Ereditato da MarshalByRefObject)
GetObjectData(SerializationInfo, StreamingContext)

Restituisce i dati necessari per serializzare l'istanza corrente.

GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
HexEscape(Char)

Converte un carattere specificato nell'equivalente esadecimale.

HexUnescape(String, Int32)

Converte una rappresentazione esadecimale specificata di un carattere nel carattere .

InitializeLifetimeService()
Obsoleti.

Ottiene un oggetto servizio di durata per controllare i criteri di durata per questa istanza.

(Ereditato da MarshalByRefObject)
IsBadFileSystemCharacter(Char)
Obsoleti.
Obsoleti.
Obsoleti.

Indica se un carattere non è valido in un nome di file system.

IsBaseOf(Uri)

Determina se l'istanza di Uri corrente è una base dell'istanza di Uri specificata.

IsExcludedCharacter(Char)
Obsoleti.
Obsoleti.
Obsoleti.

Determina se il carattere specificato deve essere preceduto da un carattere di escape.

IsHexDigit(Char)

Determina se un carattere specificato è una cifra esadecimale valida.

IsHexEncoding(String, Int32)

Determina se un carattere in una stringa è codificato in formato esadecimale.

IsReservedCharacter(Char)
Obsoleti.
Obsoleti.
Obsoleti.

Determina se il carattere specificato è un carattere riservato.

IsWellFormedOriginalString()

Indica se la stringa utilizzata per costruire questo Uri è stata ben formata e non richiede un'ulteriore escape.

IsWellFormedUriString(String, UriKind)

Indica se la stringa è ben formata tentando di costruire un URI con la stringa e garantisce che la stringa non richieda un'ulteriore escape.

MakeRelative(Uri)
Obsoleti.
Obsoleti.
Obsoleti.
Obsoleti.

Determina la differenza tra due istanze di Uri.

MakeRelativeUri(Uri)

Determina la differenza tra due istanze di Uri.

MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
MemberwiseClone(Boolean)

Crea una copia superficiale dell'oggetto MarshalByRefObject corrente.

(Ereditato da MarshalByRefObject)
Parse()
Obsoleti.
Obsoleti.
Obsoleti.

Analizza l'URI dell'istanza corrente per assicurarsi che contenga tutte le parti necessarie per un URI valido.

ToString()

Ottiene una rappresentazione di stringa canonica per l'istanza di Uri specificata.

TryCreate(String, UriCreationOptions, Uri)

Crea un nuovo Uri utilizzando l'istanza di String specificata e UriCreationOptions.

TryCreate(String, UriKind, Uri)

Crea una nuova Uri utilizzando l'istanza di String specificata e un UriKind.

TryCreate(Uri, String, Uri)

Crea un nuovo Uri usando la base e le istanze relative String specificate.

TryCreate(Uri, Uri, Uri)

Crea un nuovo Uri usando la base e le istanze relative Uri specificate.

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

Tenta di convertire un intervallo nella relativa rappresentazione di escape.

TryFormat(Span<Char>, Int32)

Tenta di formattare una rappresentazione di stringa canonica per l'istanza di Uri nell'intervallo specificato.

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

Tenta di convertire un intervallo nella relativa rappresentazione senza caratteri di escape.

Unescape(String)
Obsoleti.
Obsoleti.
Obsoleti.

Converte la stringa specificata sostituendo qualsiasi sequenza di escape con la relativa rappresentazione senza caratteri di escape.

UnescapeDataString(ReadOnlySpan<Char>)

Converte un intervallo nella relativa rappresentazione senza caratteri di escape.

UnescapeDataString(String)

Converte una stringa nella relativa rappresentazione senza caratteri di escape.

Operatori

Equality(Uri, Uri)

Determina se due istanze Uri hanno lo stesso valore.

Inequality(Uri, Uri)

Determina se due istanze di Uri non hanno lo stesso valore.

Implementazioni dell'interfaccia esplicita

IFormattable.ToString(String, IFormatProvider)

Formatta il valore dell'istanza corrente utilizzando il formato specificato.

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Restituisce i dati necessari per serializzare l'istanza corrente.

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

Tenta di formattare il valore dell'istanza corrente nell'intervallo di caratteri specificato.

Si applica a

Thread safety

Tutti i membri di Uri sono thread-safe e possono essere usati simultaneamente da più thread.

Vedi anche