Uri Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Fornece uma representação de objeto de um identificador uniforme de recurso (URI) e fácil acesso às partes do 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
- Herança
-
Uri
- Herança
- Atributos
- Implementações
Exemplos
O exemplo seguinte cria uma instância da Uri classe e usa-a para realizar um pedido GET com 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)
O excerto de código seguinte mostra valores de exemplo das várias propriedades da 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
Observações
Para mais informações sobre esta API, consulte Observações Suplementares da API para Uri.
Construtores
| Name | Description |
|---|---|
| Uri(SerializationInfo, StreamingContext) |
Obsoleto.
Inicializa uma nova instância da Uri classe a partir das instâncias especificadas das SerializationInfo classes e StreamingContext . |
| Uri(String, Boolean) |
Obsoleto.
Obsoleto.
Obsoleto.
Obsoleto.
Inicializa uma nova instância da Uri classe com o URI especificado, com controlo explícito de escape de caracteres. |
| Uri(String, UriCreationOptions) |
Inicializa uma nova instância da Uri classe com o URI especificado e outros UriCreationOptions. |
| Uri(String, UriKind) |
Inicializa uma nova instância da Uri classe com o URI especificado. Este construtor permite-lhe especificar se a cadeia de URI é um URI relativo, URI absoluto ou indeterminado. |
| Uri(String) |
Inicializa uma nova instância da Uri classe com o URI especificado. |
| Uri(Uri, String, Boolean) |
Obsoleto.
Obsoleto.
Obsoleto.
Obsoleto.
Inicializa uma nova instância da Uri classe com base especificada e URIs relativas, com controlo explícito do escape de caracteres. |
| Uri(Uri, String) |
Inicializa uma nova instância da Uri classe com base no URI base especificado e na cadeia de URI relativa. |
| Uri(Uri, Uri) |
Inicializa uma nova instância da Uri classe com base na combinação de uma instância base Uri especificada e uma instância relativa Uri . |
Campos
| Name | Description |
|---|---|
| SchemeDelimiter |
Especifica os caracteres que separam o esquema do protocolo de comunicação da parte de endereços do URI. Este campo é só de leitura. |
| UriSchemeData |
Fornece uma representação de objeto de um identificador uniforme de recurso (URI) e fácil acesso às partes do URI. |
| UriSchemeFile |
Especifica que o URI é um apontador para um ficheiro. Este campo é só de leitura. |
| UriSchemeFtp |
Especifica que o URI é acedido através do Protocolo de Transferência de Ficheiros (FTP). Este campo é só de leitura. |
| UriSchemeFtps |
Especifica que o URI é acedido através do File Transfer Protocol Secure (FTPS). Este campo é só de leitura. |
| UriSchemeGopher |
Especifica que o URI é acedido através do protocolo Gopher. Este campo é só de leitura. |
| UriSchemeHttp |
Especifica que o URI é acedido através do Protocolo de Transferência de Hipertexto (HTTP). Este campo é só de leitura. |
| UriSchemeHttps |
Especifica que o URI é acedido através do Protocolo Seguro de Transferência de Hipertexto (HTTPS). Este campo é só de leitura. |
| UriSchemeMailto |
Especifica que o URI é um endereço de email e é acedido através do Protocolo de Transporte de Correio Simples (SMTP). Este campo é só de leitura. |
| UriSchemeNetPipe |
Especifica que o URI é acedido através do esquema NetPipe usado pela Windows Communication Foundation (WCF). Este campo é só de leitura. |
| UriSchemeNetTcp |
Especifica que o URI é acedido através do esquema NetTcp usado pela Windows Communication Foundation (WCF). Este campo é só de leitura. |
| UriSchemeNews |
Especifica que o URI é um grupo de notícias da Internet e é acedido através do Protocolo de Transporte de Notícias de Rede (NNTP). Este campo é só de leitura. |
| UriSchemeNntp |
Especifica que o URI é um grupo de notícias da Internet e é acedido através do Protocolo de Transporte de Notícias de Rede (NNTP). Este campo é só de leitura. |
| UriSchemeSftp |
Especifica que o URI é acedido através do Protocolo de Transferência de Ficheiros SSH (SFTP). Este campo é só de leitura. |
| UriSchemeSsh |
Especifica que o URI é acedido através do protocolo Secure Socket Shell (SSH). Este campo é só de leitura. |
| UriSchemeTelnet |
Especifica que o URI é acedido através do protocolo Telnet. Este campo é só de leitura. |
| UriSchemeWs |
Especifica que o URI é acedido através do protocolo WebSocket (WS). Este campo é só de leitura. |
| UriSchemeWss |
Especifica que o URI é acedido através do protocolo WebSocket Secure (WSS). Este campo é só de leitura. |
Propriedades
| Name | Description |
|---|---|
| AbsolutePath |
Obtém o percurso absoluto do URI. |
| AbsoluteUri |
Recebe o URI absoluto. |
| Authority |
Obtém o nome do host ou endereço IP do Sistema de Nomes de Domínio (DNS) e o número de porta de um servidor. |
| DnsSafeHost |
Recebe um nome de host que, depois de ser libertado se necessário, é seguro para usar na resolução de DNS. |
| Fragment |
Recebe o fragmento do URI escapado, incluindo o caractere '#' inicial se não estiver vazio. |
| Host |
Obtém o componente anfitrião desta instância. |
| HostNameType |
Obtém o tipo do nome de host especificado no URI. |
| IdnHost |
Obtém o nome de domínio internacional compatível com RFC 3490 do host, usando Punycode conforme apropriado. Esta cadeia, depois de ser desbloqueada se necessário, é segura para usar na resolução DNS. |
| IsAbsoluteUri |
Obtém um valor que indica se a Uri instância é absoluta. |
| IsDefaultPort |
Obtém um valor que indica se o valor de porta do URI é o padrão para este esquema. |
| IsFile |
Recebe um valor que indica se o especificado Uri é um URI de ficheiro. |
| IsLoopback |
Obtém um valor que indica se o especificado Uri faz referência ao host local. |
| IsUnc |
Obtém um valor que indica se o especificado Uri é um caminho de convenção universal de nomenclatura (UNC). |
| LocalPath |
Obtém uma representação local do sistema operativo de um nome de ficheiro. |
| OriginalString |
Obtém a string URI original que foi passada para o Uri construtor. |
| PathAndQuery |
Obtém as AbsolutePath propriedades e Query separadas por um ponto de interrogação (?). |
| Port |
Obtém o número de porta deste URI. |
| Query |
Recebe qualquer informação de consulta incluída no URI especificado, incluindo o caractere inicial '?' se não estiver vazio. |
| Scheme |
Obtém o nome do esquema para este URI. |
| Segments |
Obtém um array contendo os segmentos de caminho que compõem o URI especificado. |
| UserEscaped |
Recebe um valor que indica se a cadeia de URI foi completamente escapada antes da Uri instância ser criada. |
| UserInfo |
Obtém o nome de utilizador, palavra-passe ou outra informação específica do utilizador associada ao URI especificado. |
Métodos
| Name | Description |
|---|---|
| Canonicalize() |
Obsoleto.
Obsoleto.
Obsoleto.
Converte o URI armazenado internamente para a forma canónica. |
| CheckHostName(String) |
Determina se o nome de host especificado é um nome DNS válido. |
| CheckSchemeName(String) |
Determina se o nome do esquema especificado é válido. |
| CheckSecurity() |
Obsoleto.
Obsoleto.
Obsoleto.
Chamar este método não tem efeito. |
| Compare(Uri, Uri, UriComponents, UriFormat, StringComparison) |
Compara as partes especificadas de dois URIs usando as regras de comparação especificadas. |
| CreateObjRef(Type) |
Cria um objeto que contém toda a informação relevante necessária para gerar um proxy usado para comunicar com um objeto remoto. (Herdado de MarshalByRefObject) |
| Equals(Object) |
Compara duas Uri instâncias para a igualdade. |
| Equals(Uri) |
Compara duas Uri instâncias para a igualdade. |
| Escape() |
Obsoleto.
Obsoleto.
Obsoleto.
Converte quaisquer caracteres inseguros ou reservados no componente path para as suas representações hexadecimais. |
| EscapeDataString(ReadOnlySpan<Char>) |
Converte um vão para a sua representação escapada. |
| EscapeDataString(String) |
Converte uma corda para a sua representação escapada. |
| EscapeString(String) |
Obsoleto.
Obsoleto.
Obsoleto.
Obsoleto.
Converte uma corda para a sua representação escapada. |
| EscapeUriString(String) |
Obsoleto.
Obsoleto.
Converte uma cadeia de URI para a sua representação escapada. |
| FromHex(Char) |
Obtém o valor decimal de um dígito hexadecimal. |
| GetComponents(UriComponents, UriFormat) |
Obtém os componentes especificados da instância atual usando o escape especificado para caracteres especiais. |
| GetHashCode() |
Obtém o código hash do URI. |
| GetLeftPart(UriPartial) |
Obtém a parte especificada de uma Uri instância. |
| GetLifetimeService() |
Obsoleto.
Recupera o objeto de serviço de tempo de vida atual que controla a política de vida útil neste caso. (Herdado de MarshalByRefObject) |
| GetObjectData(SerializationInfo, StreamingContext) |
Devolve os dados necessários para serializar a instância atual. |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| HexEscape(Char) |
Converte um carácter especificado no seu equivalente hexadecimal. |
| HexUnescape(String, Int32) |
Converte uma representação hexadecimal especificada de um carácter para o caractere. |
| InitializeLifetimeService() |
Obsoleto.
Obtém-se um objeto de serviço vitalício para controlar a apólice vitalícia neste caso. (Herdado de MarshalByRefObject) |
| IsBadFileSystemCharacter(Char) |
Obsoleto.
Obsoleto.
Obsoleto.
Indica se um carácter é inválido no nome do sistema de ficheiros. |
| IsBaseOf(Uri) |
Determina se a instância atual Uri é uma base da instância especificada Uri . |
| IsExcludedCharacter(Char) |
Obsoleto.
Obsoleto.
Obsoleto.
Determina se a personagem especificada deve ser escapada. |
| IsHexDigit(Char) |
Determina se um carácter especificado é um dígito hexadecimal válido. |
| IsHexEncoding(String, Int32) |
Determina se um carácter numa cadeia é codificado hexadecimalmente. |
| IsReservedCharacter(Char) |
Obsoleto.
Obsoleto.
Obsoleto.
Determina se o carácter especificado é um carácter reservado. |
| IsWellFormedOriginalString() |
Indica se a corda usada para construir isto Uri estava bem formada e não requer mais fuga. |
| IsWellFormedUriString(String, UriKind) |
Indica se a cadeia está bem formada ao tentar construir um URI com a cadeia e garante que a cadeia não precisa de mais fugas. |
| MakeRelative(Uri) |
Obsoleto.
Obsoleto.
Obsoleto.
Obsoleto.
Determina a diferença entre duas Uri instâncias. |
| MakeRelativeUri(Uri) |
Determina a diferença entre duas Uri instâncias. |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| Parse() |
Obsoleto.
Obsoleto.
Obsoleto.
Analisa o URI da instância atual para garantir que contém todas as partes necessárias para um URI válido. |
| ToString() |
Obtém uma representação canónica de cadeias para a instância especificada Uri . |
| TryCreate(String, UriCreationOptions, Uri) |
Cria uma nova Uri usando a instância especificada String e UriCreationOptions. |
| TryCreate(String, UriKind, Uri) |
Cria uma nova Uri usando a instância especificada String e um UriKind. |
| TryCreate(Uri, String, Uri) |
Cria um novo Uri usando a base especificada e as instâncias relativas String . |
| TryCreate(Uri, Uri, Uri) |
Cria um novo Uri usando a base especificada e as instâncias relativas Uri . |
| TryEscapeDataString(ReadOnlySpan<Char>, Span<Char>, Int32) |
Tenta converter um vão para a sua representação escapada. |
| TryFormat(Span<Char>, Int32) |
Tentativas de formatar uma representação canónica de cadeias para a Uri instância no espaço especificado. |
| TryUnescapeDataString(ReadOnlySpan<Char>, Span<Char>, Int32) |
Tenta converter um vão para a sua representação inevitável. |
| Unescape(String) |
Obsoleto.
Obsoleto.
Obsoleto.
Converte a cadeia especificada substituindo quaisquer sequências de escape pela sua representação não escapada. |
| UnescapeDataString(ReadOnlySpan<Char>) |
Converte um trecho na sua representação inevitável. |
| UnescapeDataString(String) |
Converte uma corda para a sua representação sem escapamento. |
Operadores
| Name | Description |
|---|---|
| Equality(Uri, Uri) |
Determina se duas Uri instâncias têm o mesmo valor. |
| Inequality(Uri, Uri) |
Determina se duas Uri instâncias não têm o mesmo valor. |
Implementações de Interface Explícita
| Name | Description |
|---|---|
| IFormattable.ToString(String, IFormatProvider) |
Formata o valor da instância atual usando o formato especificado. |
| ISerializable.GetObjectData(SerializationInfo, StreamingContext) |
Devolve os dados necessários para serializar a instância atual. |
| ISpanFormattable.TryFormat(Span<Char>, Int32, ReadOnlySpan<Char>, IFormatProvider) |
Tenta formatar o valor da instância atual no intervalo fornecido de caracteres. |
Aplica-se a
Segurança de Thread
Todos os membros de Uri são seguros para threads e podem ser usados simultaneamente a partir de múltiplos threads.