Uri Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Fornece uma representação de objeto de um URI (uniform resource identifier) 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 a seguir cria uma instância da classe e a Uri usa para executar uma solicitação 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 snippet de código a seguir mostra valores de exemplo das várias propriedades na 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
Comentários
Um URI (uniform resource identifier) é uma representação compacta de um recurso disponível para seu aplicativo na intranet ou internet. A Uri classe define as propriedades e os métodos para lidar com URIs, incluindo análise, comparação e combinação. As propriedades da classe Uri são somente leitura; para criar um objeto modificável, use a classe UriBuilder.
URIs relativas (por exemplo, "/new/index.htm") devem ser expandidas em relação a um URI base para que sejam absolutas. O MakeRelativeUri método é fornecido para converter URIs absolutas em URIs relativas quando necessário.
Os construtores Uri 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 de escape, com todos os caracteres com valores Unicode maiores que 127 substituídos por seus equivalentes hexadecimal. Para colocar o URI em forma canônica, o Uri construtor executa as seguintes etapas:
- Converte o esquema de URI em letras minúsculas.
- Converte o nome do host em letras 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 de 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 porcentagem) que não têm uma finalidade reservada são decodificados (também conhecidos como sem escape). Esses 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 bloco (%7E).
- Canonicaliza o caminho para URIs hierárquicas compactando sequências como
/./e/../, independentemente de a sequência estar ou não escapada. Observe que há alguns esquemas para os quais essas sequências não são compactadas. - Para URIs hierárquicas, 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 o RFC 2396. Esse comportamento muda se a análise de Identificadores de Recursos Internacionais ou de Nomes de Domínios Internacionais estiver ativada, caso em que os caracteres reservados no URI são escapados de acordo com a RFC 3986 e a RFC 3987.
Como parte da canonicalização no construtor para alguns esquemas, os segmentos de ponto (/./ e /../) são compactados (em outras palavras, removidos). Os esquemas para os quais Uri compacta segmentos 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 na prática. As sequências com escape são desescapadas, 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 conteúdo da classe Uri de uma referência de URI codificada para escape para uma referência de URI legível usando o método ToString. Observe que alguns caracteres reservados ainda podem ser escapados na saída do método ToString. Isso é para dar suporte à reconstrução inequívoca de um URI do valor retornado por ToString.
Alguns URIs incluem um identificador de fragmento ou uma consulta ou ambos. Um identificador de fragmento é qualquer texto que siga um sinal de número (#), não incluindo o sinal de número; o texto do fragmento é armazenado na Fragment propriedade. As informações de consulta são qualquer texto que siga um ponto de interrogação (?) no URI; o texto da consulta é armazenado na Query propriedade.
Note
A classe URI dá suporte ao uso de endereços IP em quad-notation para protocolo IPv4 e colon-hexadecimal para protocolo IPv6. Lembre-se de colocar o endereço IPv6 entre colchetes, como em http://[::1].
Suporte ao identificador de recursos internacionais
Os endereços da Web normalmente 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 no RFC 2396, RFC 2732, RFC 3986 e RFC 3987 publicados pela IETF (Internet Engineering Task Force).
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 IRIs (Identificadores de Recursos Internacionais). As especificações para IRIs estão documentadas no RFC 3987 publicado pelo 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 de IRI mais recentes no RFC 3986 e RFC 3987.
O processamento de IRI e IDN na Uri classe pode ser controlado usando as classes de System.Configuration.IdnElementconfiguração e System.Configuration.UriSection de System.Configuration.IriParsingElementconfiguração. A System.Configuration.IriParsingElement configuração habilita ou desabilita o processamento de IRI na Uri classe. A System.Configuration.IdnElement configuração habilita ou desabilita o processamento de IDN na Uri classe.
A definição da configuração das classes System.Configuration.IriParsingElement e System.Configuration.IdnElement é lida uma vez quando a classe System.Uri é construída pela primeira vez. As alterações nas configurações após esse horário são ignoradas.
A System.GenericUriParser classe também foi estendida para permitir a criação de um analisador personalizável que dá suporte a IRI e IDN. O comportamento de um System.GenericUriParser objeto é especificado passando uma combinação bit a bit dos valores disponíveis na System.GenericUriParserOptions enumeração para o System.GenericUriParser construtor. O GenericUriParserOptions.IriParsing tipo indica que o analisador dá suporte às regras de análise especificadas no RFC 3987 para IRI (International Resource Identifiers).
O tipo GenericUriParserOptions.Idn indica que o analisador oferece suporte à análise de IDN (Internationalized Domain Name) de nomes de host. Em .NET (Core) e .NET Framework 4.5+, o IDN é sempre usado. Em versões anteriores, uma opção de configuração determina se o IDN é usado.
Suporte ao caminho do arquivo implícito
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 estão em conformidade com a especificação de 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, pois um caminho de arquivo implícito absoluto é indistinguível de um caminho relativo. Quando essa ambiguidade está presente, Uri o padrão é interpretar o caminho como um URI absoluto.
Considerações de segurança
Devido a questões de segurança, seu aplicativo deve ter cuidado ao aceitar instâncias de Uri provenientes de fontes não confiáveis e ao definir dontEscape como true no construtor. Você pode verificar uma cadeia de caracteres de URI para obter validade chamando o IsWellFormedOriginalString método.
Ao lidar com a entrada de usuário não confiável, confirme suposições sobre a instância recém-criada Uri antes de confiar em suas propriedades.
Isso pode ser feito da seguinte maneira:
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 obter mais detalhes sobre as considerações de design e segurança do Uri e UriBuilder, examine os seguintes documentos do modelo de ameaça:
Considerações sobre desempenho
Se você usar um arquivo Web.config que contém URIs para inicializar seu aplicativo, será necessário tempo adicional para processar as URIs se os identificadores de esquema não estiverem padrão. Nesse caso, inicialize as partes afetadas do aplicativo quando as URIs forem necessárias, não na hora de início.
Construtores
| Nome | Description |
|---|---|
| Uri(SerializationInfo, StreamingContext) |
Obsoleto.
Inicializa uma nova instância da classe das Uri instâncias e SerializationInfo classes StreamingContext especificadas. |
| Uri(String, Boolean) |
Obsoleto.
Obsoleto.
Obsoleto.
Obsoleto.
Inicializa uma nova instância da Uri classe com o URI especificado, com controle explícito de escape de caractere. |
| Uri(String, UriCreationOptions) |
Inicializa uma nova instância da Uri classe com o URI especificado e adicionais UriCreationOptions. |
| Uri(String, UriKind) |
Inicializa uma nova instância da Uri classe com o URI especificado. Esse construtor permite que você especifique se a cadeia de caracteres de URI é um URI relativo, um 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 nas URIs base e relativas especificadas, com controle explícito de escape de caractere. |
| Uri(Uri, String) |
Inicializa uma nova instância da Uri classe com base no URI base especificado e na cadeia de caracteres 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 de uma instância relativa Uri . |
Campos
| Nome | Description |
|---|---|
| SchemeDelimiter |
Especifica os caracteres que separam o esquema de protocolo de comunicação da parte de endereço do URI. O campo é somente leitura. |
| UriSchemeData |
Fornece uma representação de objeto de um URI (uniform resource identifier) e fácil acesso às partes do URI. |
| UriSchemeFile |
Especifica que o URI é um ponteiro para um arquivo. O campo é somente leitura. |
| UriSchemeFtp |
Especifica que o URI é acessado por meio do FTP (Protocolo de Transferência de Arquivo). O campo é somente leitura. |
| UriSchemeFtps |
Especifica que o URI é acessado por meio do FTPS (File Transfer Protocol Secure). O campo é somente leitura. |
| UriSchemeGopher |
Especifica que o URI é acessado por meio do protocolo Gopher. O campo é somente leitura. |
| UriSchemeHttp |
Especifica que o URI é acessado por meio do HTTP (Protocolo de Transferência de Hipertexto). O campo é somente leitura. |
| UriSchemeHttps |
Especifica que o URI é acessado por meio do PROTOCOLO HTTPS (Secure Hypertext Transfer Protocol). O campo é somente leitura. |
| UriSchemeMailto |
Especifica que o URI é um endereço de email e é acessado por meio do Protocolo SMTP. O campo é somente leitura. |
| UriSchemeNetPipe |
Especifica que o URI é acessado por meio do esquema NetPipe usado pelo WCF (Windows Communication Foundation). O campo é somente leitura. |
| UriSchemeNetTcp |
Especifica que o URI é acessado por meio do esquema NetTcp usado pelo WCF (Windows Communication Foundation). O campo é somente leitura. |
| UriSchemeNews |
Especifica que o URI é um grupo de notícias da Internet e é acessado por meio do NNTP (Protocolo de Transporte de Notícias de Rede). O campo é somente leitura. |
| UriSchemeNntp |
Especifica que o URI é um grupo de notícias da Internet e é acessado por meio do NNTP (Protocolo de Transporte de Notícias de Rede). O campo é somente leitura. |
| UriSchemeSftp |
Especifica que o URI é acessado por meio do Protocolo SSH de Transferência de Arquivo (SFTP). O campo é somente leitura. |
| UriSchemeSsh |
Especifica que o URI é acessado por meio do protocolo SSH (Secure Socket Shell). O campo é somente leitura. |
| UriSchemeTelnet |
Especifica que o URI é acessado por meio do protocolo Telnet. O campo é somente leitura. |
| UriSchemeWs |
Especifica que o URI é acessado por meio do protocolo WebSocket (WS). O campo é somente leitura. |
| UriSchemeWss |
Especifica que o URI é acessado por meio do protocolo WebSocket Secure (WSS). O campo é somente leitura. |
Propriedades
| Nome | Description |
|---|---|
| AbsolutePath |
Obtém o caminho absoluto do URI. |
| AbsoluteUri |
Obtém o URI absoluto. |
| Authority |
Obtém o nome de host ou o endereço IP do DNS (Sistema de Nomes de Domínio) e o número da porta de um servidor. |
| DnsSafeHost |
Obtém um nome de host que, depois de não ser possível, se necessário, é seguro de usar para resolução DNS. |
| Fragment |
Obtém o fragmento de URI com escape, incluindo o caractere '#' à esquerda, se não estiver vazio. |
| Host |
Obtém o componente host dessa instância. |
| HostNameType |
Obtém o tipo do nome do host especificado no URI. |
| IdnHost |
Obtém o Nome de Domínio Internacional compatível com RFC 3490 do host, usando Punycode conforme apropriado. Essa cadeia de caracteres, depois de não ser removida, se necessário, é segura de usar para 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 da porta do URI é o padrão para esse esquema. |
| IsFile |
Obtém um valor que indica se o especificado Uri é um URI de arquivo. |
| IsLoopback |
Obtém um valor que indica se o host local faz Uri referência especificado. |
| IsUnc |
Obtém um valor que indica se o especificado Uri é um caminho UNC (convenção de nomenclatura universal). |
| LocalPath |
Obtém uma representação do sistema operacional local de um nome de arquivo. |
| OriginalString |
Obtém a cadeia de caracteres de URI original que foi passada para o Uri construtor. |
| PathAndQuery |
Obtém o e AbsolutePath as Query propriedades separadas por um ponto de interrogação (?). |
| Port |
Obtém o número da porta desse URI. |
| Query |
Obtém qualquer informação de consulta incluída no URI especificado, incluindo o caractere '?' à esquerda, se não estiver vazio. |
| Scheme |
Obtém o nome do esquema para esse URI. |
| Segments |
Obtém uma matriz que contém os segmentos de caminho que compõem o URI especificado. |
| UserEscaped |
Obtém um valor que indica se a cadeia de caracteres de URI foi completamente escapada antes de a Uri instância ser criada. |
| UserInfo |
Obtém o nome de usuário, a senha ou outras informações específicas do usuário associadas ao URI especificado. |
Métodos
| Nome | Description |
|---|---|
| Canonicalize() |
Obsoleto.
Obsoleto.
Obsoleto.
Converte o URI armazenado internamente em forma canônica. |
| CheckHostName(String) |
Determina se o nome do host especificado é um nome DNS válido. |
| CheckSchemeName(String) |
Determina se o nome do esquema especificado é válido. |
| CheckSecurity() |
Obsoleto.
Obsoleto.
Obsoleto.
Chamar esse método não tem efeito. |
| Compare(Uri, Uri, UriComponents, UriFormat, StringComparison) |
Compara as partes especificadas de duas URIs usando as regras de comparação especificadas. |
| CreateObjRef(Type) |
Cria um objeto que contém todas as informações relevantes necessárias para gerar um proxy usado para se comunicar com um objeto remoto. (Herdado de MarshalByRefObject) |
| Equals(Object) |
Compara duas Uri instâncias para igualdade. |
| Equals(Uri) |
Compara duas Uri instâncias para igualdade. |
| Escape() |
Obsoleto.
Obsoleto.
Obsoleto.
Converte quaisquer caracteres não seguros ou reservados no componente de caminho em suas representações de caractere hexadecimal. |
| EscapeDataString(ReadOnlySpan<Char>) |
Converte um intervalo em sua representação de escape. |
| EscapeDataString(String) |
Converte uma cadeia de caracteres em sua representação de escape. |
| EscapeString(String) |
Obsoleto.
Obsoleto.
Obsoleto.
Obsoleto.
Converte uma cadeia de caracteres em sua representação de escape. |
| EscapeUriString(String) |
Obsoleto.
Obsoleto.
Converte uma cadeia de caracteres de URI em sua representação de escape. |
| 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 para o 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 tempo de vida para essa instância. (Herdado de MarshalByRefObject) |
| GetObjectData(SerializationInfo, StreamingContext) |
Retorna 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 caractere especificado em seu equivalente hexadecimal. |
| HexUnescape(String, Int32) |
Converte uma representação hexadecimal especificada de um caractere no caractere. |
| InitializeLifetimeService() |
Obsoleto.
Obtém um objeto de serviço de tempo de vida para controlar a política de tempo de vida dessa instância. (Herdado de MarshalByRefObject) |
| IsBadFileSystemCharacter(Char) |
Obsoleto.
Obsoleto.
Obsoleto.
Indica se um caractere é inválido em um nome de sistema de arquivos. |
| IsBaseOf(Uri) |
Determina se a instância atual Uri é uma base da instância especificada Uri . |
| IsExcludedCharacter(Char) |
Obsoleto.
Obsoleto.
Obsoleto.
Determina se o caractere especificado deve ser escapado. |
| IsHexDigit(Char) |
Determina se um caractere especificado é um dígito hexadecimal válido. |
| IsHexEncoding(String, Int32) |
Determina se um caractere em uma cadeia de caracteres é codificado hexadecimal. |
| IsReservedCharacter(Char) |
Obsoleto.
Obsoleto.
Obsoleto.
Determina se o caractere especificado é um caractere reservado. |
| IsWellFormedOriginalString() |
Indica se a cadeia de caracteres usada para construir isso Uri foi bem formada e não requer escape adicional. |
| IsWellFormedUriString(String, UriKind) |
Indica se a cadeia de caracteres está bem formada ao tentar construir um URI com a cadeia de caracteres e garante que a cadeia de caracteres não exija escape adicional. |
| 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 Objectatual. (Herdado de Object) |
| Parse() |
Obsoleto.
Obsoleto.
Obsoleto.
Analisa o URI da instância atual para garantir que ele contenha todas as partes necessárias para um URI válido. |
| ToString() |
Obtém uma representação de cadeia de caracteres canônica para a instância especificada Uri . |
| TryCreate(String, UriCreationOptions, Uri) |
Cria um novo Uri usando a instância especificada String e UriCreationOptions. |
| TryCreate(String, UriKind, Uri) |
Cria um novo Uri usando a instância especificada String e um UriKind. |
| TryCreate(Uri, String, Uri) |
Cria um novo Uri usando a base especificada e instâncias relativas String . |
| TryCreate(Uri, Uri, Uri) |
Cria um novo Uri usando a base especificada e instâncias relativas Uri . |
| TryEscapeDataString(ReadOnlySpan<Char>, Span<Char>, Int32) |
Tenta converter um intervalo em sua representação de escape. |
| TryFormat(Span<Char>, Int32) |
Tenta formatar uma representação de cadeia de caracteres canônica para a Uri instância no intervalo especificado. |
| TryUnescapeDataString(ReadOnlySpan<Char>, Span<Char>, Int32) |
Tenta converter um intervalo em sua representação sem escape. |
| Unescape(String) |
Obsoleto.
Obsoleto.
Obsoleto.
Converte a cadeia de caracteres especificada substituindo todas as sequências de escape por sua representação sem escape. |
| UnescapeDataString(ReadOnlySpan<Char>) |
Converte um intervalo em sua representação sem escape. |
| UnescapeDataString(String) |
Converte uma cadeia de caracteres em sua representação sem escape. |
Operadores
| Nome | 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. |
Implantações explícitas de interface
| Nome | Description |
|---|---|
| IFormattable.ToString(String, IFormatProvider) |
Formata o valor da instância atual usando o formato especificado. |
| ISerializable.GetObjectData(SerializationInfo, StreamingContext) |
Retorna 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 de caracteres fornecido. |
Aplica-se a
Acesso thread-safe
Todos os membros são Uri thread-safe e podem ser usados simultaneamente de vários threads.