Compartir vía


Uri Clase

Definición

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

public ref class Uri
public ref class Uri : System::Runtime::Serialization::ISerializable
public ref class Uri : ISpanFormattable, System::Runtime::Serialization::ISerializable
public ref class Uri : IEquatable<Uri ^>, ISpanFormattable, System::Runtime::Serialization::ISerializable
public ref class Uri : MarshalByRefObject, System::Runtime::Serialization::ISerializable
public class Uri
public class Uri : System.Runtime.Serialization.ISerializable
public class Uri : ISpanFormattable, System.Runtime.Serialization.ISerializable
public class Uri : IEquatable<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 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 ISerializable
Public Class Uri
Implements ISerializable, ISpanFormattable
Public Class Uri
Implements IEquatable(Of Uri), ISerializable, ISpanFormattable
Public Class Uri
Inherits MarshalByRefObject
Implements ISerializable
Herencia
Uri
Herencia
Atributos
Implementaciones

Ejemplos

En el ejemplo siguiente se crea una instancia de la clase Uri y se usa para realizar una solicitud GET con HttpClient.

Uri^ siteUri = gcnew Uri("http://www.contoso.com/");

// HttpClient lifecycle management best practices:
// https://learn.microsoft.com/dotnet/fundamentals/networking/http/httpclient-guidelines#recommended-use
HttpClient^ client = gcnew HttpClient;
HttpRequestMessage^ request = gcnew HttpRequestMessage(HttpMethod::Get, siteUri);
HttpResponseMessage^ response = client->Send(request);
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)

En el fragmento de código siguiente se muestran valores de ejemplo de las distintas propiedades de la clase .

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

Comentarios

Para obtener más información sobre esta API, consulte comentarios de api complementarias para Uri.

Constructores

Uri(SerializationInfo, StreamingContext)
Obsoletos.

Inicializa una nueva instancia de la clase Uri a partir de las instancias especificadas de las clases SerializationInfo y StreamingContext especificadas.

Uri(String)

Inicializa una nueva instancia de la clase Uri con el URI especificado.

Uri(String, Boolean)
Obsoletos.
Obsoletos.
Obsoletos.

Inicializa una nueva instancia de la clase Uri con el URI especificado, con control explícito de escape de caracteres.

Uri(String, UriCreationOptions)

Inicializa una nueva instancia de la clase Uri con el URI especificado y UriCreationOptionsadicional .

Uri(String, UriKind)

Inicializa una nueva instancia de la clase Uri con el URI especificado. Este constructor permite especificar si la cadena de URI es un URI relativo, un URI absoluto o está indeterminado.

Uri(Uri, String)

Inicializa una nueva instancia de la clase Uri en función del URI base y la cadena de URI relativa especificadas.

Uri(Uri, String, Boolean)
Obsoletos.
Obsoletos.
Obsoletos.

Inicializa una nueva instancia de la clase Uri en función de los URI relativos y base especificados, con control explícito de escape de caracteres.

Uri(Uri, Uri)

Inicializa una nueva instancia de la clase Uri en función de la combinación de una instancia de Uri base especificada y una instancia de Uri relativa.

Campos

SchemeDelimiter

Especifica los caracteres que separan el esquema de protocolo de comunicación de la parte de dirección del URI. Este campo es de solo lectura.

UriSchemeFile

Especifica que el URI es un puntero a un archivo. Este campo es de solo lectura.

UriSchemeFtp

Especifica que se accede al URI a través del Protocolo de transferencia de archivos (FTP). Este campo es de solo lectura.

UriSchemeFtps

Especifica que se accede al URI a través del protocolo de transferencia de archivos seguro (FTPS). Este campo es de solo lectura.

UriSchemeGopher

Especifica que se accede al URI a través del protocolo Gopher. Este campo es de solo lectura.

UriSchemeHttp

Especifica que se accede al URI a través del Protocolo de transferencia de hipertexto (HTTP). Este campo es de solo lectura.

UriSchemeHttps

Especifica que se accede al URI a través del Protocolo seguro de transferencia de hipertexto (HTTPS). Este campo es de solo lectura.

UriSchemeMailto

Especifica que el URI es una dirección de correo electrónico y se accede a través del Protocolo de transporte de correo simple (SMTP). Este campo es de solo lectura.

UriSchemeNetPipe

Especifica que se accede al URI a través del esquema NetPipe usado por Windows Communication Foundation (WCF). Este campo es de solo lectura.

UriSchemeNetTcp

Especifica que se accede al URI a través del esquema NetTcp usado por Windows Communication Foundation (WCF). Este campo es de solo lectura.

UriSchemeNews

Especifica que el URI es un grupo de noticias de Internet y se accede a él a través del Protocolo de transporte de noticias de red (NNTP). Este campo es de solo lectura.

UriSchemeNntp

Especifica que el URI es un grupo de noticias de Internet y se accede a él a través del Protocolo de transporte de noticias de red (NNTP). Este campo es de solo lectura.

UriSchemeSftp

Especifica que se accede al URI a través del protocolo de transferencia de archivos SSH (SFTP). Este campo es de solo lectura.

UriSchemeSsh

Especifica que se accede al URI a través del protocolo Secure Socket Shell (SSH). Este campo es de solo lectura.

UriSchemeTelnet

Especifica que se accede al URI a través del protocolo Telnet. Este campo es de solo lectura.

UriSchemeWs

Especifica que se accede al URI a través del protocolo WebSocket (WS). Este campo es de solo lectura.

UriSchemeWss

Especifica que se accede al URI a través del protocolo WebSocket Secure (WSS). Este campo es de solo lectura.

Propiedades

AbsolutePath

Obtiene la ruta de acceso absoluta del URI.

AbsoluteUri

Obtiene el URI absoluto.

Authority

Obtiene el nombre de host o la dirección IP del sistema de nombres de dominio (DNS) y el número de puerto de un servidor.

DnsSafeHost

Obtiene un nombre de host que, después de quedar sin escape si es necesario, es seguro usar para la resolución DNS.

Fragment

Obtiene el fragmento de URI con escape, incluido el carácter "#" inicial si no está vacío.

Host

Obtiene el componente host de esta instancia.

HostNameType

Obtiene el tipo del nombre de host especificado en el URI.

IdnHost

Obtiene el nombre de dominio internacional compatible con RFC 3490 del host mediante Punycode según corresponda. Esta cadena, después de ser sin escape si es necesario, es segura de usar para la resolución DNS.

IsAbsoluteUri

Obtiene un valor que indica si la instancia de Uri es absoluta.

IsDefaultPort

Obtiene un valor que indica si el valor de puerto del URI es el valor predeterminado para este esquema.

IsFile

Obtiene un valor que indica si el Uri especificado es un URI de archivo.

IsLoopback

Obtiene un valor que indica si el Uri especificado hace referencia al host local.

IsUnc

Obtiene un valor que indica si el Uri especificado es una ruta de acceso de convención de nomenclatura universal (UNC).

LocalPath

Obtiene una representación local del sistema operativo de un nombre de archivo.

OriginalString

Obtiene la cadena de URI original que se pasó al constructor de Uri.

PathAndQuery

Obtiene las propiedades AbsolutePath y Query separadas por un signo de interrogación (?).

Port

Obtiene el número de puerto de este URI.

Query

Obtiene cualquier información de consulta incluida en el URI especificado, incluido el carácter inicial "?" si no está vacío.

Scheme

Obtiene el nombre del esquema para este URI.

Segments

Obtiene una matriz que contiene los segmentos de ruta de acceso que componen el URI especificado.

UserEscaped

Obtiene un valor que indica si la cadena de URI se ha escapado completamente antes de crear la instancia de Uri.

UserInfo

Obtiene el nombre de usuario, la contraseña u otra información específica del usuario asociada al URI especificado.

Métodos

Canonicalize()
Obsoletos.
Obsoletos.
Obsoletos.

Convierte el URI almacenado internamente en forma canónica.

CheckHostName(String)

Determina si el nombre de host especificado es un nombre DNS válido.

CheckSchemeName(String)

Determina si el nombre de esquema especificado es válido.

CheckSecurity()
Obsoletos.
Obsoletos.
Obsoletos.

Llamar a este método no tiene ningún efecto.

Compare(Uri, Uri, UriComponents, UriFormat, StringComparison)

Compara las partes especificadas de dos URI mediante las reglas de comparación especificadas.

CreateObjRef(Type)

Crea un objeto que contiene toda la información pertinente necesaria para generar un proxy usado para comunicarse con un objeto remoto.

(Heredado de MarshalByRefObject)
Equals(Object)

Compara dos instancias de Uri para obtener igualdad.

Equals(Uri)

Compara dos instancias de Uri para obtener igualdad.

Escape()
Obsoletos.
Obsoletos.
Obsoletos.

Convierte los caracteres no seguros o reservados del componente de ruta de acceso a sus representaciones de caracteres hexadecimales.

EscapeDataString(ReadOnlySpan<Char>)

Convierte un intervalo en su representación con escape.

EscapeDataString(String)

Convierte una cadena en su representación con escape.

EscapeString(String)
Obsoletos.
Obsoletos.
Obsoletos.
Obsoletos.

Convierte una cadena en su representación con escape.

EscapeUriString(String)
Obsoletos.
Obsoletos.

Convierte una cadena de URI en su representación con escape.

FromHex(Char)

Obtiene el valor decimal de un dígito hexadecimal.

GetComponents(UriComponents, UriFormat)

Obtiene los componentes especificados de la instancia actual utilizando el escape especificado para caracteres especiales.

GetHashCode()

Obtiene el código hash del URI.

GetLeftPart(UriPartial)

Obtiene la parte especificada de una instancia de Uri.

GetLifetimeService()
Obsoletos.

Recupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.

(Heredado de MarshalByRefObject)
GetObjectData(SerializationInfo, StreamingContext)

Devuelve los datos necesarios para serializar la instancia actual.

GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
HexEscape(Char)

Convierte un carácter especificado en su equivalente hexadecimal.

HexUnescape(String, Int32)

Convierte una representación hexadecimal especificada de un carácter en el carácter .

InitializeLifetimeService()
Obsoletos.

Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.

(Heredado de MarshalByRefObject)
IsBadFileSystemCharacter(Char)
Obsoletos.
Obsoletos.
Obsoletos.

Indica si un carácter no es válido en un nombre de sistema de archivos.

IsBaseOf(Uri)

Determina si la instancia de Uri actual es una base de la instancia de Uri especificada.

IsExcludedCharacter(Char)
Obsoletos.
Obsoletos.
Obsoletos.

Determina si el carácter especificado debe ser de escape.

IsHexDigit(Char)

Determina si un carácter especificado es un dígito hexadecimal válido.

IsHexEncoding(String, Int32)

Determina si un carácter de una cadena tiene codificación hexadecimal.

IsReservedCharacter(Char)
Obsoletos.
Obsoletos.
Obsoletos.

Determina si el carácter especificado es un carácter reservado.

IsWellFormedOriginalString()

Indica si la cadena utilizada para construir este Uri estaba bien formada y no requiere un escape adicional.

IsWellFormedUriString(String, UriKind)

Indica si la cadena tiene un formato correcto al intentar construir un URI con la cadena y garantiza que la cadena no requiera un escape adicional.

MakeRelative(Uri)
Obsoletos.
Obsoletos.
Obsoletos.
Obsoletos.

Determina la diferencia entre dos instancias de Uri.

MakeRelativeUri(Uri)

Determina la diferencia entre dos instancias de Uri.

MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
MemberwiseClone(Boolean)

Crea una copia superficial del objeto MarshalByRefObject actual.

(Heredado de MarshalByRefObject)
Parse()
Obsoletos.
Obsoletos.
Obsoletos.

Analiza el URI de la instancia actual para asegurarse de que contiene todas las partes necesarias para un URI válido.

ToString()

Obtiene una representación de cadena canónica para la instancia de Uri especificada.

TryCreate(String, UriCreationOptions, Uri)

Crea un nuevo Uri mediante la instancia de String especificada y UriCreationOptions.

TryCreate(String, UriKind, Uri)

Crea un nuevo Uri mediante la instancia de String especificada y un UriKind.

TryCreate(Uri, String, Uri)

Crea un nuevo Uri mediante las instancias de String base y relativas especificadas.

TryCreate(Uri, Uri, Uri)

Crea un nuevo Uri mediante las instancias de Uri base y relativas especificadas.

TryEscapeDataString(ReadOnlySpan<Char>, Span<Char>, Int32)

Intenta convertir un intervalo en su representación con escape.

TryFormat(Span<Char>, Int32)

Intenta dar formato a una representación de cadena canónica para la instancia de Uri en el intervalo especificado.

TryUnescapeDataString(ReadOnlySpan<Char>, Span<Char>, Int32)

Intenta convertir un intervalo en su representación sin escape.

Unescape(String)
Obsoletos.
Obsoletos.
Obsoletos.

Convierte la cadena especificada reemplazando las secuencias de escape por su representación sin escape.

UnescapeDataString(ReadOnlySpan<Char>)

Convierte un intervalo en su representación sin escape.

UnescapeDataString(String)

Convierte una cadena en su representación sin escape.

Operadores

Equality(Uri, Uri)

Determina si dos instancias de Uri tienen el mismo valor.

Inequality(Uri, Uri)

Determina si dos instancias de Uri no tienen el mismo valor.

Implementaciones de interfaz explícitas

IFormattable.ToString(String, IFormatProvider)

Da formato al valor de la instancia actual mediante el formato especificado.

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Devuelve los datos necesarios para serializar la instancia actual.

ISpanFormattable.TryFormat(Span<Char>, Int32, ReadOnlySpan<Char>, IFormatProvider)

Intenta dar formato al valor de la instancia actual en el intervalo de caracteres proporcionado.

Se aplica a

Seguridad para subprocesos

Todos los miembros de Uri son seguros para subprocesos y se pueden usar simultáneamente desde varios subprocesos.

Consulte también