Uri Classe

Definição

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

Um identificador de recurso uniforme (URI) é uma representação compacta de um recurso disponível para seu aplicativo na intranet ou na Internet. A Uri classe define as propriedades e os métodos para manipular URIs, incluindo análise, comparação e combinação. As propriedades da classe Uri são somente de leitura; para criar um objeto modificável, use a classe UriBuilder.

Os URIs relativos (por exemplo, "/new/index.htm") devem ser expandidos em relação a um URI de base para que sejam absolutos. O MakeRelativeUri método é fornecido para converter URIs absolutos em URIs relativos quando necessário.

Os Uri construtores não escapam de cadeias de caracteres de URI se a cadeia de caracteres for um URI bem formado, incluindo um identificador de esquema.

As Uri propriedades retornam uma representação de dados canônica na codificação com escape, com todos os caracteres com valores Unicode maiores que 127 substituídos por seus equivalentes hexadecimais. Para colocar o URI na forma canônica, o Uri construtor executa as seguintes etapas:

  • Converte o esquema de URI em minúsculas.
  • Converte o nome do host em minúsculas.
  • Se o nome do host for um endereço IPv6, o endereço IPv6 canônico será usado. ScopeId e outros dados IPv6 opcionais são removidos.
  • Remove números de porta padrão e vazios.
  • Converte caminhos de arquivo implícitos sem o esquema file:// (por exemplo, "C:\my\file") em caminhos de arquivo explícitos com o esquema file://.
  • Os caracteres com escape (também conhecidos como octetos codificados por percentagem) que não têm uma finalidade reservada são descodificados (também conhecidos como não escapados). Estes caracteres não reservados incluem letras maiúsculas e minúsculas (%41-%5A e %61-%7A), dígitos decimais (%30-%39), hífen (%2D), ponto (%2E), sublinhado (%5F) e til (%7E).
  • Canonicaliza o caminho para URIs hierárquicas compactando sequências como /./ e /../ (quer a sequência esteja escapada ou não). Observe que existem alguns esquemas para os quais essas sequências não são compactadas.
  • Para URIs hierárquicos, se o host não for encerrado com uma barra (/), uma será adicionada.
  • Por padrão, todos os caracteres reservados no URI são escapados de acordo com a RFC 2396. Esse comportamento muda se os identificadores de recursos internacionais ou a análise de nome de domínio internacional estiverem habilitados, caso em que os caracteres reservados no URI são codificados de acordo com as RFCs 3986 e 3987.

Como parte da canonicalização no construtor para alguns esquemas, os segmentos de pontos (/./ e /../) são compactados (em outras palavras, eles são removidos). Os esquemas para os quais os segmentos de Uri são compactados incluem http, https, tcp, net.pipe e net.tcp. Para alguns outros esquemas, essas sequências não são compactadas. O trecho de código a seguir mostra como a compactação parece na prática. As sequências escapadas são desfeitas, se necessário, e depois compactadas.

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 esse código é executado, ele retorna uma saída semelhante ao texto a seguir.

AbsoluteUri: http://myurl/
PathAndQuery: /

Você pode transformar o Uri conteúdo da classe de uma referência de URI codificada de escape para uma referência de URI legível usando o ToString método. Observe que alguns caracteres reservados ainda podem ser escapados na saída do ToString método. Isso é para dar suporte à reconstrução inequívoca de um URI a partir do valor retornado pelo ToString.

Alguns URIs incluem um identificador de fragmento ou uma consulta ou ambos. Um identificador de fragmento é qualquer texto que segue um sinal numérico (#), não incluindo o sinal numérico; O texto do fragmento Fragment é armazenado na propriedade. As informações da consulta são qualquer texto que segue um ponto de interrogação (?) no URI; o texto da consulta é armazenado na propriedade Query.

Note

A classe URI suporta o uso de endereços IP em notação quad para protocolo IPv4 e dois pontos-hexadecimais para protocolo IPv6. Lembre-se de colocar o endereço IPv6 entre colchetes, como em http://[::1].

Suporte a identificadores de recursos internacionais

Os endereços da Web geralmente são expressos usando URIs que consistem em um conjunto muito restrito de caracteres:

  • Letras ASCII maiúsculas e minúsculas do alfabeto inglês.
  • Dígitos de 0 a 9.
  • Um pequeno número de outros símbolos ASCII.

As especificações para URIs estão documentadas em RFC 2396, RFC 2732, RFC 3986 e RFC 3987 publicadas pela Internet Engineering Task Force (IETF).

Os identificadores que facilitam a necessidade de identificar recursos usando idiomas diferentes do inglês e permitem caracteres não-ASCII (caracteres no conjunto de caracteres Unicode/ISO 10646) são conhecidos como Identificadores de Recursos Internacionais (IRIs). As especificações para IRIs estão documentadas no RFC 3987 publicado pela IETF. O uso de IRIs permite que uma URL contenha caracteres Unicode. A normalização e a verificação de caracteres são feitas de acordo com as regras mais recentes do IRI no RFC 3986 e RFC 3987.

O processamento IRI e IDN na Uri classe pode ser controlado usando as System.Configuration.IriParsingElementclasses de configuração , System.Configuration.IdnElement, e System.Configuration.UriSection configuração. A definição System.Configuration.IriParsingElement ativa ou desativa o processamento de IRI na classe Uri. A configuração System.Configuration.IdnElement habilita ou desativa o processamento de IDN na classe Uri.

A definição de configuração para o System.Configuration.IriParsingElement e System.Configuration.IdnElement são lidas uma vez quando a primeira classe System.Uri é instanciada. As alterações nas definições de configuração após esse período são ignoradas.

A System.GenericUriParser classe também foi estendida para permitir a criação de um analisador personalizável que suporta IRI e IDN. O comportamento de um objeto System.GenericUriParser é especificado passando uma combinação bit a bit dos valores disponíveis na enumeração System.GenericUriParserOptions para o construtor System.GenericUriParser. O GenericUriParserOptions.IriParsing tipo indica que o analisador suporta as regras de análise especificadas no RFC 3987 for International Resource Identifiers (IRI).

O GenericUriParserOptions.Idn tipo indica que o analisador suporta a análise de nomes de anfitrião em domínios internacionalizados (IDN). No .NET (Core) e no .NET Framework 4.5+, o IDN é sempre utilizado. Em versões anteriores, uma opção de configuração determina se o IDN é usado.

Suporte implícito a caminhos de arquivos

Uri também pode ser usado para representar caminhos do sistema de arquivos local. Esses caminhos podem ser representados explicitamente em URIs que começam com o esquema file:// e implicitamente em URIs que não têm o esquema file://. Como um exemplo concreto, os dois URIs a seguir são válidos e representam o mesmo caminho de arquivo:

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.

Esses caminhos de arquivo implícitos não são compatíveis com a especificação URI e devem ser evitados quando possível. Ao usar o .NET Core em sistemas baseados em Unix, os caminhos de arquivo implícitos podem ser especialmente problemáticos, porque um caminho de arquivo implícito absoluto é indistinguível de um caminho relativo. Quando essa ambiguidade estiver presente, Uri o padrão será interpretar o caminho como um URI absoluto.

Considerações de segurança

Devido a preocupações de segurança, seu aplicativo deve ter cuidado ao aceitar Uri instâncias de fontes não confiáveis e com dontEscape definido como true no construtor. Você pode verificar a validade de uma cadeia de caracteres URI chamando o IsWellFormedOriginalString método.

Ao lidar com entradas de usuário não confiáveis, confirme as suposições sobre a instância recém-criada Uri antes de confiar em suas propriedades. Isto pode ser feito da seguinte forma:

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

Essa validação pode ser usada em outros casos, como ao lidar com caminhos UNC, simplesmente alterando o baseUri:

Uri baseUri = new Uri(@"\\host\share\some\directory\name\");

Para mais detalhes sobre as considerações de design e segurança de Uri e UriBuilder, consulte os seguintes documentos de modelos de ameaça:

Considerações sobre desempenho

Se você usar um arquivo Web.config que contenha URIs para inicializar seu aplicativo, será necessário tempo adicional para processar os URIs se seus identificadores de esquema não forem padrão. Nesse caso, inicialize as partes afetadas da sua aplicação quando os identificadores URI forem necessários, não ao iniciar a aplicação.

Construtores

Name Descrição
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 Descrição
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 Descrição
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 Descrição
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 Descrição
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 Descrição
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.

Ver também