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 : IEquatable<Uri ^>, ISpanFormattable, System::Runtime::Serialization::ISerializable
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 : IEquatable<Uri>, ISpanFormattable, System.Runtime.Serialization.ISerializable
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 IEquatable<Uri>
    interface IFormattable
    interface ISpanFormattable
    interface ISerializable
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 IEquatable(Of Uri), ISerializable, ISpanFormattable
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 = 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

Nome Descrizione
Uri(SerializationInfo, StreamingContext)
Obsoleti.

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

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

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

Uri(String, UriCreationOptions)

Inizializza una nuova istanza della Uri classe con l'URI specificato e il valore aggiuntivo UriCreationOptions.

Uri(String, UriKind)

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

Uri(String)

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

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

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

Uri(Uri, String)

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

Uri(Uri, Uri)

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

Campi

Nome Descrizione
SchemeDelimiter

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

UriSchemeData

Fornisce una rappresentazione dell'oggetto di un URI (Uniform Resource Identifier) e un facile accesso alle parti dell'URI.

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à

Nome Descrizione
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 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 specificato Uri è un URI di file.

IsLoopback

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

IsUnc

Ottiene un valore che indica se l'oggetto specificato Uri è 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 Uri costruttore.

PathAndQuery

Ottiene le AbsolutePath proprietà 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 un escape prima della creazione dell'istanza Uri .

UserInfo

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

Metodi

Nome Descrizione
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 Uri istanze per verificare l'uguaglianza.

Equals(Uri)

Confronta due Uri istanze 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 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 corrente Uri è una base dell'istanza specificata Uri .

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 oggetto è 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 Uri istanze.

MakeRelativeUri(Uri)

Determina la differenza tra due Uri istanze.

MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
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 specificata Uri .

TryCreate(String, UriCreationOptions, Uri)

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

TryCreate(String, UriKind, Uri)

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

TryCreate(Uri, String, Uri)

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

TryCreate(Uri, Uri, Uri)

Crea un nuovo Uri oggetto utilizzando 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 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

Nome Descrizione
Equality(Uri, Uri)

Determina se due Uri istanze hanno lo stesso valore.

Inequality(Uri, Uri)

Determina se due Uri istanze non hanno lo stesso valore.

Implementazioni dell'interfaccia esplicita

Nome Descrizione
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