UriTemplate Clase

Definición

Una clase que representa una plantilla de identificador uniforme de recursos (URI).A class that represents a Uniform Resource Identifier (URI) template.

public ref class UriTemplate
public class UriTemplate
type UriTemplate = class
Public Class UriTemplate
Herencia
UriTemplate

Ejemplos

El código siguiente muestra cómo crear una instancia de UriTemplate, cómo enlazarla con un URI candidato y hacerla coincidir con él.The following code demonstrates how to create a UriTemplate instance, and bind and match it to a candidate URI.

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 URI le permite definir un conjunto de URI estructuralmente similares.A URI template allows you to define a set of structurally similar URIs. Las plantillas se componen de dos partes, una ruta de acceso y una consulta.Templates are composed of two parts, a path and a query. Una ruta de acceso consiste en una serie de segmentos delimitados por una barra diagonal (/).A path consists of a series of segments delimited by a slash (/). 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.Each segment can have a literal value, a variable value (written within curly braces [{ }], constrained to match the contents of exactly one segment), or a wildcard (written as an asterisk [*], which matches "the rest of the path"), which must appear at the end of the path. La expresión de consulta puede omitirse completamente.The query expression can be omitted entirely. Si está presente, especifica una serie no ordenada de pares nombre/valor.If present, it specifies an unordered series of name/value pairs. Los elementos de la expresión de consulta pueden ser pares literales (?x=2) o pares variables (?x = {val}).Elements of the query expression can be either literal pairs (?x=2) or variable pairs (?x={val}). No se permiten los valores no emparejados.Unpaired values are not permitted. Los ejemplos siguientes muestran las cadenas de plantilla válidas:The following examples show valid template strings:

  • "tiempo/WA/Seattle""weather/WA/Seattle"

  • "tiempo/{estado}/{ciudad}""weather/{state}/{city}"

  • "tiempo/*""weather/*"

  • "tiempo/{estado}/{ciudad}?previsión=hoy"weather/{state}/{city}?forecast=today

  • "tiempo/{estado}/{ciudad}?previsión={día}"weather/{state}/{city}?forecast={day}

Las plantillas URI anteriores se podrían utilizar para organizar informes del tiempo.The preceding URI templates might be used for organizing weather reports. Los segmentos encerrados en llaves son las variables, todo lo demás es un literal.Segments enclosed in curly braces are variables, everything else is a literal. Puede convertir una instancia UriTemplate en Uri reemplazando las variables con valores reales.You can convert a UriTemplate instance into a Uri by replacing variables with actual values. Por ejemplo, tomando la plantilla "tiempo/{estado}/{ciudad}" y metiendo los valores para las variables "{estado}" y "{ciudad}" le da "tiempo/WA/Seattle".For example, taking the template "weather/{state}/{city}" and putting in values for the variables "{state}" and "{city}" gives you "weather/WA/Seattle". Dado un URI de candidato, puede probar si coincide con una plantilla URI determinada llamando a Match(Uri, Uri).Given a candidate URI, you can test whether it matches a given URI template by calling 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[]).You can also use UriTemplate instances to create a Uri from a set of variable values by calling BindByName(Uri, NameValueCollection) or BindByPosition(Uri, String[]).

Constructores

UriTemplate(String)

Inicializa una instancia nueva de la clase UriTemplate con la cadena de plantilla especificada.Initializes a new instance of the UriTemplate class with the specified template string.

UriTemplate(String, Boolean)

Inicializa una nueva instancia de la clase UriTemplate.Initializes a new instance of the UriTemplate class.

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

Inicializa una nueva instancia de la clase UriTemplate.Initializes a new instance of the UriTemplate class.

UriTemplate(String, IDictionary<String,String>)

Inicializa una nueva instancia de la clase UriTemplate.Initializes a new instance of the UriTemplate class.

Propiedades

Defaults

Obtiene una colección de pares de nombre-valor para cualquier valor de parámetro predeterminado.Gets a collection of name/value pairs for any default parameter values.

IgnoreTrailingSlash

Especifica si las barras diagonales "/" finales de la plantilla se deben ignorar cuando coincidan con los URI candidatos.Specifies whether trailing slashes "/" in the template should be ignored when matching candidate URIs.

PathSegmentVariableNames

Obtiene una colección de nombres de variable utilizados dentro de los segmentos de la ruta de acceso de la plantilla.Gets a collection of variable names used within path segments in the template.

QueryValueVariableNames

Obtiene una colección de nombres de variable utilizada dentro de la cadena de consulta de la plantilla.Gets a collection of variable names used within the query string in the template.

Métodos

BindByName(Uri, IDictionary<String,String>)

Crea un nuevo URI a partir de la plantilla y la colección de parámetros.Creates a new URI from the template and the collection of parameters.

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

Crea un nuevo URI a partir de la plantilla y la colección de parámetros.Creates a new URI from the template and the collection of parameters.

BindByName(Uri, NameValueCollection)

Crea un nuevo URI a partir de la plantilla y la colección de parámetros.Creates a new URI from the template and the collection of parameters.

BindByName(Uri, NameValueCollection, Boolean)

Crea un nuevo URI a partir de la plantilla y la colección de parámetros.Creates a new URI from the template and the collection of parameters.

BindByPosition(Uri, String[])

Crea un nuevo URI a partir de la plantilla y una matriz de valores de parámetro.Creates a new URI from the template and an array of parameter values.

Equals(Object)

Determina si el objeto especificado es igual al objeto actual.Determines whether the specified object is equal to the current object.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.Serves as the default hash function.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Heredado de Object)
IsEquivalentTo(UriTemplate)

Indica si un UriTemplate es estructuralmente equivalente a otro.Indicates whether a UriTemplate is structurally equivalent to another.

Match(Uri, Uri)

Intenta hacer coincidir un Uri con un UriTemplate.Attempts to match a Uri to a UriTemplate.

MemberwiseClone()

Crea una copia superficial del objeto Object actual.Creates a shallow copy of the current Object.

(Heredado de Object)
ToString()

Devuelve la representación de la cadena de la instancia UriTemplate.Returns a string representation of the UriTemplate instance.

Se aplica a