Uri Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
- 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:
- ms-appx: hace referencia a los archivos empaquetados localmente de la aplicación.
- ms-appx-web: también hace referencia a los archivos empaquetados localmente de la aplicación, pero los carga en un contexto web. Esto suele ser necesario si está accediendo a los recursos para su uso por WebView, o escribiendo aplicaciones HTML/JavaScript y solicitando desde una página HTML. Para obtener más información, consulta Esquemas de URI o Cómo hacer referencia al contenido (HTML).
- ms-appdata: hace referencia a los archivos de aplicación que proceden de las carpetas de datos locales, móviles y temporales de la aplicación. Para obtener más información, consulta Esquemas de URI o Almacenar y recuperar la configuración y otros datos de la aplicación.
- ms-resource: hace referencia a los recursos de la aplicación en el sistema de administración de recursos. Para más información, consulte Localizar cadenas en la interfaz de usuario y el manifiesto de paquete de aplicación.
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. |