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.
Define um objeto que representa um valor de URI (Uniform Resource Identifier) e o analisa em componentes. O objeto Uri é usado por muitas outras APIs Windows Runtime que não estão necessariamente restritas a cenários de navegador da Web.
.NET Ao programar com o .NET, esse tipo fica oculto e os desenvolvedores devem usar System.Uri. Consulte Observações.
public ref class Uri sealed : IStringable
/// [Windows.Foundation.Metadata.Activatable(Windows.Foundation.IUriRuntimeClassFactory, 65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class Uri final : IStringable
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(Windows.Foundation.IUriRuntimeClassFactory, 65536, "Windows.Foundation.UniversalApiContract")]
class Uri final : IStringable
[Windows.Foundation.Metadata.Activatable(typeof(Windows.Foundation.IUriRuntimeClassFactory), 65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class Uri : IStringable
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(typeof(Windows.Foundation.IUriRuntimeClassFactory), 65536, "Windows.Foundation.UniversalApiContract")]
public sealed class Uri : IStringable
function Uri(baseUri, relativeUri)
Public NotInheritable Class Uri
Implements IStringable
- Herança
- Atributos
- Implementações
Requisitos do Windows
Família de dispositivos |
Windows 10 (introduzida na 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (introduzida na v1.0)
|
Exemplos
Este exemplo cria um objeto Uri que representa um URI (Uniform Resource Identifier) que está usando o protocolo http para acessar um site.
// The URI string
var uriToLaunch = "http://www.bing.com";
// Create a Uri object from the URI string
var uri = new Windows.Foundation.Uri(uriToLaunch);
// The URI string.
std::wstring uriToLaunch{ L"http://www.bing.com" };
// Create a Uri object from the URI string.
Windows::Foundation::Uri uri{ uriToLaunch };
// The URI string
var uriToLaunch = L"http://www.bing.com";
// Create a Uri object from the URI string
auto uri = ref new Windows::Foundation::Uri(uriToLaunch);
Este exemplo cria um Uri que usa o protocolo ms-appx para acessar um arquivo de imagem no pacote do aplicativo.
// The URI string
var uriImage = "ms-appx:///images/SecondaryTileDefault-sdk.png";
// Create a Uri object from the URI string
var uri = new Windows.Foundation.Uri(uriImage);
// The URI string.
std::wstring uriImage{ L"ms-appx:///images/SecondaryTileDefault-sdk.png" };
// Create a Uri object from the URI string.
Windows::Foundation::Uri uri{ uriImage };
// The URI string
var uriImage = ;
// Create a Uri object from the URI string
auto uri = ref new Windows::Foundation::Uri(uriImage);
Este exemplo cria um Uri que usa o protocolo ms-appdata para acessar um arquivo no repositório de dados do aplicativo local para seu aplicativo.
// The URI string
var uriFile = "ms-appdata:///local/file.ext";
// Create a Uri object from the URI string
var uri = new Windows.Foundation.Uri(uriFile);
// The URI string.
std::wstring uriFile{ L"ms-appdata:///local/file.ext" };
// Create a Uri object from the URI string.
Windows::Foundation::Uri uri{ uriFile };
// The URI string
var uriFile = "ms-appdata:///local/file.ext";
// Create a Uri object from the URI string
auto uri = ref new Windows::Foundation::Uri(uriFile);
Comentários
Importante
Ao programar com o .NET, essa classe fica oculta e os desenvolvedores devem usar a classe System.Uri , que usa regras RFC 3987 para codificar e decodificar o URI (Uniform Resource Identifier). A classe Windows.Foundation.Uri não codifica por cento caracteres não ASCII no URI (Uniform Resource Identifier), em que o esquema se refere a um caminho de arquivo do Windows (como ms-appx:). O Windows.Foundation.Uri também interpreta a codificação por porcentagem usando a página de código atual do usuário.
Os membros disponíveis do System.Uri são semelhantes, mas diferentes dos membros do Windows.Foundation.Uri, e alguns dos comportamentos básicos descritos neste tópico são diferentes. Para obter mais informações sobre as diferenças de codificação e quais membros estão disponíveis, consulte System.Uri (particularmente os Comentários).
Aqui está um detalhamento das partes de um exemplo de URI (Uniform Resource Identifier):
scheme://username:password@host:port/path.extensão? Consulta#Fragmento
Por exemplo:
http://msdn.microsoft.com/library/windows/apps/windows.foundation.uri.aspx?cs-save-lang=1&cs-lang=cpp#code-snippet-1
Neste exemplo:
- esquema é
http
- host é
msdn.microsoft.com
- domain is
microsoft.com
(um subconjunto de host) - a extensão é
aspx
- a consulta é
cs-save-lang=1&cs-lang=cpp
- fragmento é
code-snippet-1
Observação
username:password@ antes do host são relevantes principalmente para o URI (Uniform Resource Identifier) do PROTOCOLO DE TRANSFERÊNCIA de Arquivo (FTP). AS URIs do PROTOCOLO FTP (Protocolo de Transferência de Arquivo) têm suporte limitado em Windows Runtime; consulte "Como transferir dados em segundo plano" (HTML ou XAML).
Importante
Nem todos os esquemas possíveis são utilizáveis por um aplicativo Windows Runtime. Notavelmente, o esquema file: é bloqueado. É possível criar um objeto Uri que usa esquemas que um aplicativo Windows Runtime não dá suporte e você é bloqueado quando tenta aplicar esse Uri como um valor de entrada para uma chamada à API, não ao criar o objeto.
Esquemas de URI específicos de um aplicativo de Windows Runtime
Windows Runtime tem vários esquemas exclusivos para um aplicativo Windows Runtime e eles se referem a ativos que fazem parte do aplicativo. Geralmente, esses esquemas são o que você pode usar em vez do arquivo: esquema, para se referir a arquivos empacotados e outros ativos que você incluiu como parte do pacote do aplicativo ou ativos que, de outra forma, estão associados a um aplicativo instalado:
- ms-appx: faz referência aos arquivos empacotados localmente do aplicativo.
- ms-appx-web: também faz referência aos arquivos empacotados localmente do aplicativo, mas os carrega em um contexto da Web. Isso geralmente é necessário se você estiver acessando ativos para uso pelo WebView ou escrevendo aplicativos HTML/JavaScript e solicitando de uma página HTML. Para obter mais informações, consulte Esquemas de URI ou Como referenciar conteúdo (HTML).
- ms-appdata: refere-se aos arquivos de aplicativo provenientes das pastas de dados locais, móveis e temporárias do aplicativo. Para obter mais informações, consulte Esquemas de URI ou Armazenar e recuperar configurações e outros dados do aplicativo.
- ms-resource: refere-se aos recursos do aplicativo no Sistema de Gerenciamento de Recursos. Para obter mais informações, confira Localizar as cadeias de caracteres em sua interface do usuário e o manifesto do pacote do aplicativo.
Cada um desses esquemas ignora muitas das partes componentes de um URI (Uniform Resource Identifier) destinado a outros esquemas (por exemplo, Consulta e Fragmento). Além disso, determinados componentes são explicitamente não permitidos e fazem com que o valor de Uri usando esses esquemas seja tratado como uma entrada inválida (por exemplo , valores de Nome de Usuário e Senha em um esquema ms-appx: Uri invalidará um Uri). Para obter mais informações, consulte Esquemas de URI.
Na maioria dos casos, você usa esses esquemas com três barras (exemplo: ms-appx:///page.html), que faz referência à raiz do aplicativo atual, usando o aplicativo atual como autoridade. Usos com duas barras são possíveis, mas podem exigir a especificação explícita do nome da autoridade. Os usos com duas barras podem se referir a uma dependência de pacote como a autoridade ou podem se referir a locais relativos dentro do aplicativo. Para obter mais informações, consulte Esquemas de URI.
URIs absolutas e relativas
Em um nível de código, o Windows Runtime não dá suporte ao URI (Uniform Resource Identifier) relativo. Todos os objetos Uri criados devem representar um URI (Uniform Resource Identifier) absoluto. Os esquemas listados na seção anterior são, na verdade, URI (Uniform Resource Identifier), porque o host e a autoridade estão implícitos para cada esquema e o restante do caminho é avaliado sob essa autoridade.
Iniciando um aplicativo por esquema de URI
O esquema URI (Uniform Resource Identifier) de um valor Uri pode ser usado para iniciar outros aplicativos associados a esse esquema específico. Para obter mais informações, consulte Iniciar o aplicativo padrão para um URI).
Construtores
Uri(String) |
Inicializa um novo objeto Uri da cadeia de caracteres URI (Uniform Resource Identifier) especificada. Inicializar o Uri também analisa a cadeia de caracteres e preenche as propriedades de Uri que representam componentes do URI (Uniform Resource Identifier). |
Uri(String, String) |
Inicializa um novo Uri combinando um URI (Uniform Resource Identifier) base e um URI (Uniform Resource Identifier) relativo. Inicializar o Uri também analisa a cadeia de caracteres combinada e preenche as propriedades Uri que representam componentes do URI (Uniform Resource Identifier). |
Propriedades
AbsoluteCanonicalUri |
Obtém uma representação totalmente canônica em conformidade com RFC do URI atual. |
AbsoluteUri |
Obtém todo o URI não canônico (não é canônico porque pode realmente ser um IRI, de acordo com o comportamento de codificação Windows.Foundation.Uri ; consulte Comentários.). |
DisplayIri |
Obtém os caracteres unicode decodificados que compõem o URI atual. |
DisplayUri |
Obtém uma representação do URI (Uniform Resource Identifier) que pode ser usado para fins de exibição. |
Domain |
Obtém o componente de nome de domínio, incluindo o domínio de nível superior, de um URI (Uniform Resource Identifier). |
Extension |
Obtém a extensão de nome de arquivo do recurso referenciado no Uri. |
Fragment |
Obtém o texto após um marcador de fragmento (#), incluindo o próprio marcador de fragmento. |
Host |
Obtém o nome de domínio totalmente qualificado. |
Password |
Obtém o componente de senha do URI (Uniform Resource Identifier) como armazenado nesta instância de Uri . |
Path |
Obtém o caminho e o componente de nome do recurso do URI (Uniform Resource Identifier) conforme armazenado nesta instância de Uri . |
Port |
Obtém o componente número da porta do URI (Uniform Resource Identifier) como armazenado nesta instância de Uri |
Query |
Obtém o componente de cadeia de caracteres de consulta do URI (Uniform Resource Identifier) como armazenado nesta instância de Uri . |
QueryParsed |
Obtém uma cadeia de caracteres de consulta URI (Uniform Resource Identifier) analisada. |
RawUri |
Obtém toda a cadeia de caracteres URI (Uniform Resource Identifier) original, conforme usado para construir esse objeto Uri , antes da análise e sem nenhuma codificação aplicada. |
SchemeName |
Obtém o componente de nome do esquema de protocolo do URI (Uniform Resource Identifier) conforme armazenado nesta instância de Uri |
Suspicious |
Obtém um valor que indica se a análise determinou que o URI (Uniform Resource Identifier) não está bem formado. |
UserName |
Obtém o componente de nome de usuário do URI (Uniform Resource Identifier) conforme armazenado nesta instância de Uri . |
Métodos
CombineUri(String) |
Adiciona o URI (Uniform Resource Identifier) especificado ao Uri atual. |
Equals(Uri) |
Determina se o objeto Uri especificado é igual ao objeto Uri atual. |
EscapeComponent(String) |
Converte uma cadeia de caracteres URI (Uniform Resource Identifier) em sua representação de escape. |
ToString() |
Obtém uma representação de cadeia de caracteres canônica para o Uri atual. |
UnescapeComponent(String) |
Converte a cadeia de caracteres especificada substituindo as sequências de escape por sua representação sem escape. |