UriTemplate 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í.
Clase que representa una plantilla de identificador uniforme de recursos (URI).
public ref class UriTemplate
public class UriTemplate
type UriTemplate = class
Public Class UriTemplate
- Herencia
-
UriTemplate
Ejemplos
En el código siguiente se muestra cómo crear una UriTemplate instancia y enlazarla y hacer coincidirla con un URI candidato.
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]);
}
}
Dim template As UriTemplate = New UriTemplate("weather/{state}/{city}?forecast={day}")
Dim prefix As Uri = New Uri("http://localhost")
Console.WriteLine("PathSegmentVariableNames:")
For Each name As String In template.PathSegmentVariableNames
Console.WriteLine(" {0}", name)
Next
Console.WriteLine()
Console.WriteLine("QueryValueVariableNames:")
For Each name As String In template.QueryValueVariableNames
Console.WriteLine(" {0}", name)
Next
Console.WriteLine()
Dim positionalUri As Uri = template.BindByPosition(prefix, "Washington", "Redmond", "Today")
Dim parameters As NameValueCollection = New NameValueCollection()
parameters.Add("state", "Washington")
parameters.Add("city", "Redmond")
parameters.Add("day", "Today")
Dim namedUri As Uri = template.BindByName(prefix, parameters)
Dim fullUri As Uri = New Uri("http://localhost/weather/Washington/Redmond?forecast=today")
Dim results As UriTemplateMatch = template.Match(prefix, fullUri)
Console.WriteLine("Matching {0} to {1}", template.ToString(), fullUri.ToString())
If results IsNot Nothing Then
For Each variableName As String In results.BoundVariables.Keys
Console.WriteLine(" {0}: {1}", variableName, results.BoundVariables(variableName))
Next
End If
Comentarios
Una plantilla de URI 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 consta de una serie de segmentos delimitados por una barra diagonal (/). Cada segmento puede tener un valor literal, un valor de variable (escrito entre llaves [{ }], restringido para que coincida exactamente con el contenido de un segmento) o un carácter comodín (escrito como asterisco [*], que coincide con "el resto de la ruta de acceso"), que debe aparecer al final de la ruta de acceso. La expresión de consulta se puede omitir por completo. Si está presente, especifica una serie desordenada de pares nombre-valor. Los elementos de la expresión de consulta pueden ser pares literales (?x=2) o pares de variables (?x={val}). No se permiten valores no emparejados. En los ejemplos siguientes se muestran cadenas de plantilla válidas:
"weather/WA/Seattle"
"weather/{state}/{city}"
"weather/*"
"weather/{state}/{city}?forecast=today
"weather/{state}/{city}?forecast={day}
Las plantillas de URI anteriores se pueden usar para organizar informes meteorológicos. Los segmentos entre llaves son variables, todo lo demás es un literal. Puede convertir una UriTemplate instancia en un Uri mediante la sustitución de variables por valores reales. Por ejemplo, tomar la plantilla "weather/{state}/{city}" y colocar valores para las variables "{state}" y "{city}" proporciona "weather/WA/Seattle". Dado un URI candidato, puede probar si coincide con una plantilla de URI determinada llamando a Match(Uri, Uri). También puede usar UriTemplate instancias para crear a Uri partir de un conjunto de valores de variable llamando a BindByName(Uri, NameValueCollection) o BindByPosition(Uri, String[]).
Constructores
| Nombre | Description |
|---|---|
| UriTemplate(String, Boolean, IDictionary<String,String>) |
Inicializa una nueva instancia de la clase UriTemplate. |
| UriTemplate(String, Boolean) |
Inicializa una nueva instancia de la clase UriTemplate. |
| UriTemplate(String, IDictionary<String,String>) |
Inicializa una nueva instancia de la clase UriTemplate. |
| UriTemplate(String) |
Inicializa una nueva instancia de la UriTemplate clase con la cadena de plantilla especificada. |
Propiedades
| Nombre | Description |
|---|---|
| Defaults |
Obtiene una colección de pares nombre-valor para los valores de parámetro predeterminados. |
| IgnoreTrailingSlash |
Especifica si las barras diagonales finales "/" de la plantilla deben omitirse al hacer coincidir los URI candidatos. |
| PathSegmentVariableNames |
Obtiene una colección de nombres de variable usados dentro de los segmentos de ruta de acceso de la plantilla. |
| QueryValueVariableNames |
Obtiene una colección de nombres de variable usados dentro de la cadena de consulta de la plantilla. |
Métodos
| Nombre | Description |
|---|---|
| BindByName(Uri, IDictionary<String,String>, Boolean) |
Crea un nuevo URI a partir de la plantilla y la colección de parámetros. |
| BindByName(Uri, IDictionary<String,String>) |
Crea un nuevo URI a partir de la plantilla y la colección de parámetros. |
| BindByName(Uri, NameValueCollection, Boolean) |
Crea un nuevo URI a partir de la plantilla y la colección de parámetros. |
| BindByName(Uri, NameValueCollection) |
Crea un nuevo URI a partir de la plantilla y la colección de parámetros. |
| BindByPosition(Uri, String[]) |
Crea un nuevo URI a partir de la plantilla y una matriz de valores de parámetro. |
| Equals(Object) |
Determina si el objeto especificado es igual al objeto actual. (Heredado de Object) |
| GetHashCode() |
Actúa como la función hash predeterminada. (Heredado de Object) |
| GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
| IsEquivalentTo(UriTemplate) |
Indica si es UriTemplate estructuralmente equivalente a otro. |
| Match(Uri, Uri) |
Intenta hacer coincidir un Uri objeto con un UriTemplateobjeto . |
| MemberwiseClone() |
Crea una copia superficial del Objectactual. (Heredado de Object) |
| ToString() |
Devuelve una representación de cadena de la UriTemplate instancia. |