Uri Classe

Definizione

Fornisce una rappresentazione in forma di oggetto di un identificatore URI (uniform resource identifier) e un pratico 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 : MarshalByRefObject, System::Runtime::Serialization::ISerializable
public class Uri
public class Uri : System.Runtime.Serialization.ISerializable
public class 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 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
Inherits MarshalByRefObject
Implements ISerializable
Ereditarietà
Uri
Ereditarietà
Attributi
Implementazioni

Esempio

L'esempio seguente crea un'istanza della Uri classe e la usa 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 La sezione note sulle API supplementari 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 e con il controllo esplicito dell'escape dei caratteri.

Uri(String, UriCreationOptions)

Inizializza una nuova istanza della Uri classe con l'URI specificato e l'oggetto aggiuntivo 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 se è indeterminata.

Uri(Uri, String)

Inizializza una nuova istanza della classe Uri basata sull'URI di base specificato e sulla stringa URI relativa.

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

Inizializza una nuova istanza della classe Uri basata sugli URI di base e relativi specificati, con controllo esplicito dell'escape dei caratteri.

Uri(Uri, Uri)

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

Campi

SchemeDelimiter

Specifica i caratteri che separano lo schema del protocollo di comunicazione dalla parte di 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'accesso all'URI viene eseguito 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'accesso all'URI viene eseguito tramite il protocollo Gopher. Questo campo è di sola lettura.

UriSchemeHttp

Specifica che l'accesso all'URI viene eseguito tramite HTTP (Hypertext Transfer Protocol). Questo campo è di sola lettura.

UriSchemeHttps

Specifica che l'accesso all'URI viene eseguito tramite HTTPS (Secure Hypertext Transfer Protocol). Questo campo è di sola lettura.

UriSchemeMailto

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

UriSchemeNetPipe

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

UriSchemeNetTcp

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

UriSchemeNews

Specifica che l'URI è un newsgroup Internet a cui si accede tramite NNTP (Network News Transport Protocol). Questo campo è di sola lettura.

UriSchemeNntp

Specifica che l'URI è un newsgroup Internet a cui si accede tramite 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 ssh (Secure Socket Shell Protocol). 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 la rimozione dei caratteri di escape, se necessario, può essere usato in sicurezza per la risoluzione DNS.

Fragment

Ottiene il frammento di URI preceduto da 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 IDN (International Domain Name) conforme a RFC 3490 dell'host, usando Punycode se appropriato. Questa stringa, dopo la rimozione dei caratteri di escape, se necessario, può essere usata in sicurezza 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 l'oggetto Uri specificato è l'URI di un file.

IsLoopback

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

IsUnc

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

LocalPath

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

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 di schema per questo URI.

Segments

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

UserEscaped

Ottiene un valore che indica se la stringa URI è stata sottoposta a escape completo 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 in formato canonico l'URI archiviato internamente.

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 effetto.

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

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

CreateObjRef(Type)

Consente di creare un oggetto che contiene tutte le informazioni rilevanti necessarie per la generazione del proxy utilizzato per effettuare la comunicazione con un oggetto remoto.

(Ereditato da MarshalByRefObject)
Equals(Object)

Verifica l'uguaglianza tra due istanze di Uri.

Escape()
Obsoleti.
Obsoleti.
Obsoleti.

Converte qualsiasi carattere unsafe o riservato presente nel componente percorso della relativa rappresentazione in caratteri esadecimali.

EscapeDataString(ReadOnlySpan<Char>)

Fornisce una rappresentazione in forma di oggetto di un identificatore URI (uniform resource identifier) e un pratico accesso alle parti dell'URI.

EscapeDataString(String)

Converte una stringa nella relativa rappresentazione escape.

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

Converte una stringa nella relativa rappresentazione escape.

EscapeUriString(String)
Obsoleti.
Obsoleti.

Converte una stringa URI nella relativa rappresentazione escape.

FromHex(Char)

Ottiene il valore decimale di una cifra esadecimale.

GetComponents(UriComponents, UriFormat)

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

GetHashCode()

Ottiene il codice hash per l'URI.

GetLeftPart(UriPartial)

Ottiene la parte specificata di un'istanza di Uri.

GetLifetimeService()
Obsoleti.

Consente di recuperare l'oggetto servizio di durata corrente per controllare i criteri di durata per l'istanza.

(Ereditato da MarshalByRefObject)
GetObjectData(SerializationInfo, StreamingContext)

Restituisce i dati necessari per serializzare l'istanza corrente.

GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
HexEscape(Char)

Converte un carattere specificato nel relativo equivalente esadecimale.

HexUnescape(String, Int32)

Converte una rappresentazione esadecimale specificata di un carattere nel carattere corrispondente.

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 usata per creare questo oggetto Uri è ben formata e non richiede ulteriori caratteri di escape.

IsWellFormedUriString(String, UriKind)

Indica se la stringa è ben formata mediante un tentativo di costruire un URI con tale stringa e assicura che la stringa non deve essere ulteriormente sottoposta ad 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 dell'oggetto Object corrente.

(Ereditato da Object)
MemberwiseClone(Boolean)

Crea una copia dei riferimenti dell'oggetto MarshalByRefObject corrente.

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

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

ToString()

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

TryCreate(String, UriCreationOptions, Uri)

Crea un nuovo Uri oggetto usando l'istanza specificata String e UriCreationOptions.

TryCreate(String, UriKind, Uri)

Crea un nuovo oggetto Uri usando l'istanza di String specificata e un oggetto UriKind.

TryCreate(Uri, String, Uri)

Crea un nuovo oggetto Uri usando le istanze di String relativa e di base.

TryCreate(Uri, Uri, Uri)

Crea un nuovo oggetto Uri usando le istanze di Uri relativa e di base.

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

Fornisce una rappresentazione in forma di oggetto di un identificatore URI (uniform resource identifier) e un pratico accesso alle parti dell'URI.

TryFormat(Span<Char>, Int32)

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

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

Fornisce una rappresentazione in forma di oggetto di un identificatore URI (uniform resource identifier) e un pratico accesso alle parti dell'URI.

Unescape(String)
Obsoleti.
Obsoleti.
Obsoleti.

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

UnescapeDataString(ReadOnlySpan<Char>)

Fornisce una rappresentazione in forma di oggetto di un identificatore URI (uniform resource identifier) e un pratico accesso alle parti dell'URI.

UnescapeDataString(String)

Converte una stringa nella relativa rappresentazione senza caratteri escape.

Operatori

Equality(Uri, Uri)

Determina se due istanze di 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 usando 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 contemporaneamente da più thread.

Vedi anche