Exportar (0) Imprimir
Expandir todo

Uri (Clase)

Proporciona una representación de objeto de un identificador de recursos uniforme (URI) y un acceso sencillo a las partes del identificador URI.

Espacio de nombres: System
Ensamblado: System (en system.dll)

[SerializableAttribute] 
public class Uri : ISerializable
/** @attribute SerializableAttribute() */ 
public class Uri implements ISerializable
SerializableAttribute 
public class Uri implements ISerializable

Un identificador URI es una representación compacta de un recurso disponible para la aplicación en la intranet o en Internet. La clase Uri define las propiedades y los métodos necesarios para controlar los identificadores URI, incluidos el análisis, la comparación y la combinación. Las propiedades de la clase Uri son de sólo lectura; para crear un objeto modificable, use la clase UriBuilder.

Los identificadores URI relativos (por ejemplo, "/new/index.htm") deben expandirse con respecto a un identificador URI base para que pasen a ser absolutos. Se proporciona el método MakeRelative para convertir identificadores URI absolutos en identificadores URI relativos cuando sea necesario.

Los constructores de Uri no utilizan secuencias de escape en las cadenas del identificador URI si la cadena tiene el formato correcto e incluye un identificador de esquema.

Las propiedades de Uri devuelven una representación de datos canónica con codificación de escape, y todos los caracteres cuyos valores Unicode sean mayores que 127 se sustituyen por sus equivalentes hexadecimales. Para poner el identificador URI en formato canónico, el constructor de Uri realiza los pasos siguientes.

  • Convierte a minúsculas el esquema del identificador URI.

  • Convierte a minúsculas el nombre de host.

  • Si el nombre de host es una dirección IPv6, se utiliza la dirección IPv6 canónica. Se quitan ScopeId y otros datos opcionales de IPv6.

  • Quita los números de puertos vacíos y predeterminados.

  • Canoniza la ruta de acceso de los identificadores URI jerárquicos mediante la compactación de secuencias como /./, /../, //, incluidas las representaciones con secuencias de escape.

  • Para los identificadores URI jerárquicos, si el host no finaliza con una barra diagonal (/), se agrega una.

  • A cualquier carácter reservado del identificador URI se le aplican las secuencias de escape establecidas en RFC 2396.

El método ToString permite transformar el contenido de la clase Uri de una referencia de identificador URI con códigos de escape en una referencia de identificador URI legible. Observe que algunos caracteres reservados todavía podrían contener secuencias de escape en los resultados del método ToString. El motivo es facilitar la reconstrucción inequívoca de un identificador URI a partir del valor devuelto por ToString.

Algunos identificadores URI incluyen un identificador de fragmento, una consulta o ambos. Un identificador de fragmento es cualquier texto precedido por el signo de número (#), sin incluirlo; el texto del fragmento se almacena en la propiedad Fragment. La información de consulta es el texto situado detrás de un signo de interrogación (?) en el identificador URI; el texto de consulta se almacena en la propiedad Query.

En la versión 1.1 de .NET Framework, si la cadena especificada para un constructor contiene un esquema desconocido y "c:\", la clase Uri inserta "//" después de los dos puntos. Por ejemplo, xyz:c:\abc se convierte en xyz://c:/abc. En la versión 2.0 de .NET Framework, este comportamiento ya no existe, por lo que la cadena del ejemplo se convertiría en xyz:c:/abc.

NotaNota

La clase URI admite el uso de direcciones IP en notaciones de cuatro números para el protocolo IPv4 y notaciones hexadecimales con dos puntos para el protocolo IPv6. Recuerde incluir la dirección IPv6 entre corchetes, como en http://[::1].

Consideraciones de rendimiento

Si utiliza un archivo Web.config que contiene identificadores URI para inicializar su aplicación, los URI tardarán más tiempo en procesarse si sus identificadores de esquema no son estándar. En tal caso, inicialice las partes afectadas de su aplicación cuando se requieran los URI, no en el inicio.

Notas para los llamadores Por cuestiones de seguridad, la aplicación debe tener cuidado al aceptar instancias de Uri de los orígenes que no sean de confianza y con dontEscape establecido en true.Se puede comprobar la validez de una cadena de URI llamando al método IsWellFormedOriginalString.

Nota de la plataforma Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows CE: .NET Compact Framework no diferencia entre rutas de acceso relativas y absolutas. Por otra parte, en .NET Compact Framework se procesan las cadenas URI que llevan antepuesto el esquema file:// de manera diferente que en la versión completa de .NET Framework. Una especificación file://myfile relativa se resuelve como \\myfile. Si se usa file:///myfile (tres barras diagonales), se resuelve como \myfile en el directorio raíz. Para que las operaciones se realicen correctamente, especifique información de ruta de acceso absoluta.

En el siguiente ejemplo se crea una instancia de la clase Uri y se utiliza para crear una instancia de WebRequest.

Uri siteUri = new Uri("http://www.contoso.com/");
 
WebRequest wr = WebRequest.Create(siteUri);


Uri siteUri = new Uri("http://www.contoso.com/");
WebRequest wr = WebRequest.Create(siteUri);

var siteUri : Uri = new Uri("http://www.contoso.com/");
var wr : WebRequest = WebRequest.Create(siteUri);


Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter Edition

.NET Framework no admite todas las versiones de cada plataforma. Para obtener una lista de las versiones admitidas, vea Requisitos del sistema.

.NET Framework

Compatible con: 2.0, 1.1, 1.0

.NET Compact Framework

Compatible con: 2.0, 1.0

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft