Uri Clase

Definición

Define un objeto que representa un valor de Identificador uniforme de recursos (URI) y lo analiza en componentes. Muchas otras API de Windows Runtime que no están necesariamente limitadas a escenarios de explorador web usan el objeto URI.

.RED Al programar con .NET, este tipo está oculto y los desarrolladores deben usar System.Uri. Vea la sección Comentarios.

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
Herencia
Object Platform::Object IInspectable Uri
Atributos
Implementaciones

Requisitos de Windows

Familia de dispositivos
Windows 10 (se introdujo en la versión 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (se introdujo en la versión v1.0)

Ejemplos

En este ejemplo se crea un objeto URI que representa un identificador uniforme de recursos (URI) que usa el protocolo http para acceder a un sitio web.

// 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);

En este ejemplo se crea un URI que usa el protocolo ms-appx para acceder a un archivo de imagen en el paquete de la aplicación.

// 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);

En este ejemplo se crea un URI que usa el protocolo ms-appdata para acceder a un archivo en el almacén de datos de la aplicación local para la aplicación.

// 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);

Comentarios

Importante

Al programar con .NET, esta clase está oculta y los desarrolladores deben usar la clase System.Uri , que usa reglas RFC 3987 para codificar y descodificar identificador uniforme de recursos (URI). La clase Windows.Foundation.Uri no codifica por porcentaje caracteres no ASCII en el identificador uniforme de recursos (URI), donde el esquema hace referencia a una ruta de acceso de archivo de Windows (como ms-appx:). Windows.Foundation.Uri también interpreta la codificación porcentual mediante la página de códigos actual del usuario.

Los miembros disponibles de System.Uri son similares, pero diferentes de los miembros de Windows.Foundation.Uri, y algunos de los comportamientos básicos descritos en este tema son diferentes. Para obtener más información sobre las diferencias de codificación y qué miembros están disponibles, consulta System.Uri (especialmente los comentarios).

Este es un desglose de las partes de un identificador uniforme de recursos (URI) de ejemplo:

scheme://username:password@host:port/path.extensión? Consulta#Fragmento

Por ejemplo:

http://msdn.microsoft.com/library/windows/apps/windows.foundation.uri.aspx?cs-save-lang=1&cs-lang=cpp#code-snippet-1

En este ejemplo:

  • scheme es http
  • el host es msdn.microsoft.com
  • domain es microsoft.com (un subconjunto de host)
  • la extensión es aspx
  • query is is cs-save-lang=1&cs-lang=cpp
  • el fragmento es code-snippet-1

Nota:

username:password@ anterior al host son principalmente relevantes para el identificador uniforme de recursos (URI) del Protocolo de transferencia de archivos (FTP). Los URI del Protocolo de transferencia de archivos (FTP) tienen compatibilidad limitada en Windows Runtime; consulta "Transferencia de datos en segundo plano" (HTML o XAML).

Importante

No todos los esquemas posibles son utilizables por una aplicación de Windows Runtime. En particular, el esquema file: está bloqueado. Es posible crear un objeto URI que use esquemas que no admitirá una aplicación de Windows Runtime y se le bloqueará al intentar aplicar ese URI como valor de entrada para una llamada API, no al crear el objeto.

Esquemas de URI específicos de una aplicación de Windows Runtime

Windows Runtime tiene varios esquemas que son exclusivos de una aplicación de Windows Runtime, y estos hacen referencia a los recursos que forman parte de la aplicación. Por lo general, estos esquemas son lo que puedes usar en lugar del esquema: para hacer referencia a archivos empaquetados y otros recursos que hayas incluido como parte del paquete de la aplicación, o recursos que están asociados de otro modo a una aplicación instalada:

Cada uno de estos esquemas omite muchas de las partes de componente de un identificador uniforme de recursos (URI) que están diseñados para otros esquemas (por ejemplo, consulta y fragmento). Además, algunos componentes no están permitidos explícitamente y hacen que el valor de URI que usa estos esquemas se trate como una entrada no válida (por ejemplo, los valores UserName y Password en un esquema ms-appx: URI invalidarán un URI). Para más información, consulta Esquemas de URI.

En la mayoría de los casos, usa estos esquemas con tres barras diagonales (ejemplo: ms-appx:///page.html), que hace referencia a la raíz de la aplicación actual, con la aplicación actual como autoridad. Los usos con dos barras diagonales son posibles, pero pueden requerir especificar explícitamente el nombre de autoridad. Los usos con dos barras diagonales pueden hacer referencia a una dependencia de paquete como autoridad o pueden hacer referencia a ubicaciones relativas dentro de la aplicación. Para más información, consulta Esquemas de URI.

URI absolutos y relativos

En un nivel de código, el Windows Runtime no admite el identificador uniforme de recursos relativo (URI). Todos los objetos URI que cree deben representar un identificador uniforme de recursos (URI) absoluto. Los esquemas enumerados en la sección anterior son realmente identificador uniforme de recursos (URI) absolutos, ya que el host y la autoridad son implícitos para cada esquema y el resto de la ruta de acceso se evalúa bajo esa autoridad.

Inicio de una aplicación por esquema de URI

El esquema de identificador uniforme de recursos (URI) de un valor de URI se puede usar para iniciar otras aplicaciones asociadas a ese esquema determinado. Para obtener más información, consulta Iniciar la aplicación predeterminada para un URI).

Constructores

Uri(String)

Inicializa un nuevo objeto URI a partir de la cadena de identificador uniforme de recursos (URI) especificada. Al inicializar el URI también se analiza la cadena y se rellenan las propiedades de URI que representan componentes del identificador uniforme de recursos (URI).

Uri(String, String)

Inicializa un nuevo URI combinando un identificador uniforme de recursos (URI) base y un identificador uniforme de recursos (URI) relativo. Al inicializar el URI también se analiza la cadena combinada y se rellenan las propiedades de URI que representan componentes del identificador uniforme de recursos (URI).

Propiedades

AbsoluteCanonicalUri

Obtiene una representación totalmente canónica compatible con RFC del URI actual.

AbsoluteUri

Obtiene el URI completo y no canónico (no es canónico porque podría ser realmente un IRI, según el comportamiento de codificación Windows.Foundation.Uri ; vea Comentarios).

DisplayIri

Obtiene los caracteres unicode descodificados que componen el URI actual.

DisplayUri

Obtiene una representación del identificador uniforme de recursos (URI) que se puede usar con fines de presentación.

Domain

Obtiene el componente de nombre de dominio, incluido el dominio de nivel superior, de un identificador uniforme de recursos (URI).

Extension

Obtiene la extensión de nombre de archivo del recurso al que se hace referencia en el URI.

Fragment

Obtiene el texto que sigue a un marcador de fragmento (#), incluido el propio marcador de fragmento.

Host

Obtiene el nombre de dominio completo.

Password

Obtiene el componente de contraseña del identificador uniforme de recursos (URI) tal y como se almacena en esta instancia de URI .

Path

Obtiene la ruta de acceso y el componente de nombre de recurso del identificador uniforme de recursos (URI) como se almacena en esta instancia de URI .

Port

Obtiene el componente de número de puerto del identificador uniforme de recursos (URI) tal y como se almacena en esta instancia de URI .

Query

Obtiene el componente de cadena de consulta del identificador uniforme de recursos (URI) tal y como se almacena en esta instancia de URI .

QueryParsed

Obtiene una cadena de consulta de identificador uniforme de recursos (URI) analizada.

RawUri

Obtiene toda la cadena original del identificador uniforme de recursos (URI) como se usa para construir este objeto URI , antes de analizarlo y sin ninguna codificación aplicada.

SchemeName

Obtiene el componente de nombre de esquema de protocolo del identificador uniforme de recursos (URI) tal y como se almacena en esta instancia de URI .

Suspicious

Obtiene un valor que indica si el análisis determinó que el identificador uniforme de recursos (URI) no tiene el formato correcto.

UserName

Obtiene el componente de nombre de usuario del identificador uniforme de recursos (URI) tal y como se almacena en esta instancia de URI .

Métodos

CombineUri(String)

Agrega el identificador uniforme de recursos (URI) especificado al URI actual.

Equals(Uri)

Determina si el objeto Uri especificado es igual al objeto Uri actual.

EscapeComponent(String)

Convierte una cadena de identificador uniforme de recursos (URI) en su representación con escape.

ToString()

Obtiene una representación de cadena canónica para el URI actual.

UnescapeComponent(String)

Convierte la cadena especificada, reemplazando cualquier secuencia de escape por su representación sin escape.

Se aplica a

Consulte también