Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Clase UriTemplate

 

Una clase que representa una plantilla de identificador uniforme de recursos (URI).

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

System.Object
  System.UriTemplate

public class UriTemplate

NombreDescripción
System_CAPS_pubmethodUriTemplate(String)

Inicializa una instancia nueva de la clase UriTemplate con la cadena de plantilla especificada.

System_CAPS_pubmethodUriTemplate(String, Boolean)

Inicializa una nueva instancia de la clase UriTemplate.

System_CAPS_pubmethodUriTemplate(String, Boolean, IDictionary<String, String>)

Inicializa una nueva instancia de la clase UriTemplate.

System_CAPS_pubmethodUriTemplate(String, IDictionary<String, String>)

Inicializa una nueva instancia de la clase UriTemplate.

NombreDescripción
System_CAPS_pubpropertyDefaults

Obtiene una colección de pares de nombre-valor para cualquier valor de parámetro predeterminado.

System_CAPS_pubpropertyIgnoreTrailingSlash

Especifica si las barras diagonales "/" finales de la plantilla se deben ignorar cuando coincidan con los URI candidatos.

System_CAPS_pubpropertyPathSegmentVariableNames

Obtiene una colección de nombres de variable utilizados dentro de los segmentos de la ruta de acceso de la plantilla.

System_CAPS_pubpropertyQueryValueVariableNames

Obtiene una colección de nombres de variable utilizada dentro de la cadena de consulta de la plantilla.

NombreDescripción
System_CAPS_pubmethodBindByName(Uri, IDictionary<String, String>)

Crea un nuevo URI a partir de la plantilla y la colección de parámetros.

System_CAPS_pubmethodBindByName(Uri, IDictionary<String, String>, Boolean)

Crea un nuevo URI a partir de la plantilla y la colección de parámetros.

System_CAPS_pubmethodBindByName(Uri, NameValueCollection)

Crea un nuevo URI a partir de la plantilla y la colección de parámetros.

System_CAPS_pubmethodBindByName(Uri, NameValueCollection, Boolean)

Crea un nuevo URI a partir de la plantilla y la colección de parámetros.

System_CAPS_pubmethodBindByPosition(Uri, String[])

Crea un nuevo URI a partir de la plantilla y una matriz de valores de parámetro.

System_CAPS_pubmethodEquals(Object)

Determina si el objeto especificado es igual al objeto actual.(Heredado de Object).

System_CAPS_protmethodFinalize()

Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por el recolector de basura. (Heredado de Object).

System_CAPS_pubmethodGetHashCode()

Sirve como la función hash predeterminada.(Heredado de Object).

System_CAPS_pubmethodGetType()

Obtiene el Type de la instancia actual.(Heredado de Object).

System_CAPS_pubmethodIsEquivalentTo(UriTemplate)

Indica si una clase UriTemplate es estructuralmente equivalente a otra.

System_CAPS_pubmethodMatch(Uri, Uri)

Intenta hacer coincidir un T:System.URI con un UriTemplate.

System_CAPS_protmethodMemberwiseClone()

Crea una copia superficial del Object actual.(Heredado de Object).

System_CAPS_pubmethodToString()

Devuelve la representación de la cadena de la instancia UriTemplate.(Invalida Object.ToString()).

Una plantilla URI le permite definir un conjunto de URI estructuralmente similares. Las plantillas se componen de dos partes, una ruta de acceso y una consulta. Una ruta de acceso consiste en una serie de segmentos delimitados por una barra diagonal (/). Cada segmento puede tener un valor literal, un valor variable (escrito entre llaves [{ }], necesariamente debe coincidir con el contenido exacto de un segmento), o un carácter comodín (se escribe como un asterisco [*] y coincide con "el resto de la ruta de acceso"), que debe aparecer al final de la ruta de acceso. La expresión de consulta puede omitirse completamente. Si está presente, especifica una serie no ordenada de pares nombre/valor. Los elementos de la expresión de consulta pueden ser pares literales (?x=2) o pares variables (?x = {val}). No se permiten los valores no emparejados. Los ejemplos siguientes muestran las cadenas de plantilla válidas:

  • "tiempo/WA/Seattle"

  • "tiempo/{estado}/{ciudad}"

  • "tiempo/*"

  • "tiempo/{estado}/{ciudad}?previsión=hoy

  • "tiempo/{estado}/{ciudad}?previsión={día}

Las plantillas URI anteriores se podrían utilizar para organizar informes del tiempo. Los segmentos encerrados en llaves son las variables, todo lo demás es un literal. Puede convertir una instancia UriTemplate en Uri reemplazando las variables con valores reales. Por ejemplo, tomando la plantilla "tiempo/{estado}/{ciudad}" y metiendo los valores para las variables "{estado}" y "{ciudad}" le da "tiempo/WA/Seattle". Dado un URI de candidato, puede probar si coincide con una plantilla URI determinada llamando a Match(Uri, Uri). También puede utilizar instancias UriTemplate para crear Uri a partir de un conjunto de valores variables llamando BindByName(Uri, NameValueCollection) o BindByPosition(Uri, String[]).

El código siguiente muestra cómo crear una instancia de UriTemplate, cómo enlazarla con un URI candidato y hacerla coincidir con él.

UriTemplate template = new UriTemplate("weather/{state}/{city}?forecast={day}");
Uri prefix = new Uri("http://localhost");

Console.WriteLine("PathSegmentVariableNames:");
foreach (string name in template.PathSegmentVariableNames)
{
    Console.WriteLine("     {0}", name);
}
Console.WriteLine();

Console.WriteLine("QueryValueVariableNames:");
foreach (string name in template.QueryValueVariableNames)
{
    Console.WriteLine("     {0}", name);
}
Console.WriteLine();

Uri positionalUri = template.BindByPosition(prefix, "Washington", "Redmond", "Today");

NameValueCollection parameters = new NameValueCollection();
parameters.Add("state", "Washington");
parameters.Add("city", "Redmond");
parameters.Add("day", "Today");
Uri namedUri = template.BindByName(prefix, parameters);

Uri fullUri = new Uri("http://localhost/weather/Washington/Redmond?forecast=today");
UriTemplateMatch results = template.Match(prefix, fullUri);

Console.WriteLine("Matching {0} to {1}", template.ToString(), fullUri.ToString());

if (results != null)
{
    foreach (string variableName in results.BoundVariables.Keys)
    {
        Console.WriteLine("   {0}: {1}", variableName, results.BoundVariables[variableName]);
    }
}

.NET Framework
Disponible desde 3.5
Silverlight
Disponible desde 4.0

Cualquier miembro ( Compartido en Visual Basic) estático público de este tipo es seguro para subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.

Volver al principio
Mostrar: