Uri Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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
Un URI (Uniform Resource Identifier) è una rappresentazione compatta di una risorsa disponibile per l'applicazione nella intranet o in Internet. La Uri classe definisce le proprietà e i metodi per la gestione degli URI, tra cui l'analisi, il confronto e la combinazione. Le proprietà della Uri classe sono di sola lettura. Per creare un oggetto modificabile, usare la UriBuilder classe .
Gli URI relativi (ad esempio, "/new/index.htm") devono essere espansi rispetto a un URI di base in modo che siano assoluti. Il MakeRelativeUri metodo viene fornito per convertire gli URI assoluti in URI relativi, se necessario.
I Uri costruttori non sottopongono a escape le stringhe URI se la stringa è un URI ben formata, inclusa un'identificatore di schema.
Le Uri proprietà restituiscono una rappresentazione di dati canonica nella codifica con escape, con tutti i caratteri con valori Unicode maggiori di 127 sostituiti con gli equivalenti esadecimali. Per inserire l'URI in formato canonico, il Uri costruttore esegue i passaggi seguenti:
- Converte lo schema URI in lettere minuscole.
- Converte il nome host in lettere minuscole.
- Se il nome host è un indirizzo IPv6, viene usato l'indirizzo IPv6 canonico. ScopeId e altri dati IPv6 facoltativi vengono rimossi.
- Rimuove i numeri di porta predefiniti e vuoti.
- Converte i percorsi di file impliciti senza lo schema di file:// ,ad esempio "C:\my\file") in percorsi di file espliciti con lo schema file://.
- I caratteri di escape (noti anche come ottetti con codifica percentuale) che non hanno uno scopo riservato vengono decodificati (noti anche come senza caratteri di escape). Questi caratteri non validi includono lettere maiuscole e minuscole (%41-%5A e %61-%7A), cifre decimali (%30-%39), trattino (%2D), punto (%2E), carattere di sottolineatura (%5F) e tilde (%7E).
- Canonizza il percorso per gli URI gerarchici compattando sequenze come
/./e/../(indipendentemente dal fatto che la sequenza sia preceduta o meno da un escape). Si noti che esistono alcuni schemi per i quali queste sequenze non vengono compattate. - Per gli URI gerarchici, se l'host non termina con una barra inclinata (/), viene aggiunto uno.
- Per impostazione predefinita, tutti i caratteri riservati nell'URI vengono codificati in base a RFC 2396. Questo comportamento cambia se il parsing degli International Resource Identifiers o degli International Domain Names è abilitato, nel qual caso i caratteri riservati nell'URI vengono escapati in base a RFC 3986 e RFC 3987.
Come parte della canonizzazione nel costruttore per alcuni schemi, i segmenti di punti (/./ e /../) vengono compattati (in altre parole, vengono rimossi). Gli schemi per i quali Uri compatta i segmenti includono http, https, tcp, net.pipe e net.tcp. Per altri schemi, queste sequenze non vengono compattate. Il frammento di codice seguente mostra l'aspetto della compattazione pratica. Le sequenze di escape vengono convertite da forma escapa a non escapa, se necessario, e quindi compattate.
var uri = new Uri("http://myUrl/../.."); // http scheme, unescaped
OR
var uri = new Uri("http://myUrl/%2E%2E/%2E%2E"); // http scheme, escaped
OR
var uri = new Uri("ftp://myUrl/../.."); // ftp scheme, unescaped
OR
var uri = new Uri("ftp://myUrl/%2E%2E/%2E%2E"); // ftp scheme, escaped
Console.WriteLine($"AbsoluteUri: {uri.AbsoluteUri}");
Console.WriteLine($"PathAndQuery: {uri.PathAndQuery}");
Quando questo codice viene eseguito, restituisce un output simile al testo seguente.
AbsoluteUri: http://myurl/
PathAndQuery: /
È possibile trasformare il contenuto della Uri classe da un riferimento URI codificato con escape a un riferimento URI leggibile usando il ToString metodo . Si noti che alcuni caratteri riservati potrebbero comunque essere preceduti da un carattere di escape nell'output del metodo ToString. Ciò consente di supportare la ricostruzione non ambigua di un URI dal valore restituito da ToString.
Alcuni URI includono un identificatore di frammento o una query o entrambi. Un identificatore di frammento è qualsiasi testo che segue un segno di numero (#), senza includere il segno di numero; il testo del frammento viene archiviato nella Fragment proprietà . Le informazioni sulle query sono testo che segue un punto interrogativo (?) nell'URI; il testo della query viene archiviato nella Query proprietà .
Note
La classe URI supporta l'uso di indirizzi IP sia nella notazione quad per il protocollo IPv4 sia nella notazione colon-esadecimale per il protocollo IPv6. Ricordarsi di racchiudere l'indirizzo IPv6 tra parentesi quadre, come in http://[::1].
Supporto per l'identificatore internazionale delle risorse
Gli indirizzi Web vengono in genere espressi usando URI costituiti da un set di caratteri molto limitato:
- Lettere ASCII maiuscole e minuscole dell'alfabeto inglese.
- Cifre da 0 a 9.
- Numero ridotto di altri simboli ASCII.
Le specifiche per gli URI sono documentate in RFC 2396, RFC 2732, RFC 3986 e RFC 3987 pubblicato da Internet Engineering Task Force (IETF).
Gli identificatori che facilitano la necessità di identificare le risorse usando lingue diverse dall'inglese e consentono caratteri non ASCII (caratteri nel set di caratteri Unicode/ISO 10646) sono noti come Identificatori di risorsa internazionali (IRIs). Le specifiche per gli IRIs sono documentate in RFC 3987 pubblicato da IETF. L'uso di irIs consente a un URL di contenere caratteri Unicode. La normalizzazione e il controllo dei caratteri vengono eseguiti in base alle regole IRI più recenti in RFC 3986 e RFC 3987.
L'elaborazione IRI e IDN nella Uri classe può essere controllata usando le System.Configuration.IriParsingElementclassi di impostazione di configurazione , System.Configuration.IdnElemente System.Configuration.UriSection . L'impostazione System.Configuration.IriParsingElement abilita o disabilita l'elaborazione IRI nella Uri classe . L'impostazione System.Configuration.IdnElement abilita o disabilita l'elaborazione IDN nella Uri classe .
L'impostazione di configurazione per System.Configuration.IriParsingElement e System.Configuration.IdnElement viene letta una volta quando viene costruita la prima System.Uri classe. Le modifiche apportate alle impostazioni di configurazione dopo tale ora vengono ignorate.
La System.GenericUriParser classe è stata estesa anche per consentire la creazione di un parser personalizzabile che supporta IRI e IDN. Il comportamento di un System.GenericUriParser oggetto viene specificato passando una combinazione bit per bit dei valori disponibili nell'enumerazione System.GenericUriParserOptions al System.GenericUriParser costruttore. Il GenericUriParserOptions.IriParsing tipo indica che il parser supporta le regole di analisi specificate in RFC 3987 per gli identificatori di risorse internazionali (IRI).
Il GenericUriParserOptions.Idn tipo indica che il parser supporta l'analisi IDN (Internationalized Domain Name) dei nomi host. In .NET (Core) e .NET Framework 4.5+, viene sempre usato IDN. Nelle versioni precedenti, un'opzione di configurazione determina se viene usato L'IDN.
Supporto del percorso di file implicito
Uri può essere usato anche per rappresentare i percorsi del file system locale. Questi percorsi possono essere rappresentati in modo esplicito negli URI che iniziano con lo schema di file:// e in modo implicito negli URI che non dispongono dello schema file://. Come esempio concreto, i due URI seguenti sono entrambi validi e rappresentano lo stesso percorso di file:
Uri uri1 = new Uri("C:/test/path/file.txt") // Implicit file path.
Uri uri2 = new Uri("file:///C:/test/path/file.txt") // Explicit file path.
Questi percorsi di file impliciti non sono conformi alla specifica URI e devono essere evitati quando possibile. Quando si usa .NET Core nei sistemi basati su Unix, i percorsi di file impliciti possono risultare particolarmente problematici, perché un percorso di file implicito assoluto è indistinguibile da un percorso relativo. Quando tale ambiguità è presente, Uri per impostazione predefinita viene interpretato il percorso come URI assoluto.
Considerazioni relative alla sicurezza
A causa di problemi di sicurezza, l'applicazione deve prestare attenzione quando si accettano Uri istanze da origini non attendibili e con dontEscape impostato su true nel costruttore. È possibile controllare la validità di una stringa URI chiamando il IsWellFormedOriginalString metodo .
Quando si usa l'input dell'utente non attendibile, verificare i presupposti relativi all'istanza appena creata Uri prima di considerare attendibili le relative proprietà.
Questa operazione può essere eseguita nel modo seguente:
string userInput = ...;
Uri baseUri = new Uri("https://myWebsite/files/");
if (!Uri.TryCreate(baseUri, userInput, out Uri newUri))
{
// Fail: invalid input.
}
if (!baseUri.IsBaseOf(newUri))
{
// Fail: the Uri base has been modified - the created Uri is not rooted in the original directory.
}
Questa convalida può essere usata in altri casi, ad esempio quando si gestiscono percorsi UNC, semplicemente modificando :baseUri
Uri baseUri = new Uri(@"\\host\share\some\directory\name\");
Per altri dettagli sulle considerazioni sulla progettazione e sulla sicurezza di Uri e UriBuilder, vedere i documenti del modello di minaccia seguenti:
Considerazioni sulle prestazioni
Se si usa un file diWeb.config che contiene URI per inizializzare l'applicazione, è necessario ulteriore tempo per elaborare gli URI se gli identificatori dello schema non sono standard. In questo caso, inizializza le parti interessate dell'applicazione quando sono necessari gli URI, non all'avvio.
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.