UriTemplateTable 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í.
Una clase que representa un conjunto asociativo de objetos UriTemplate.
public ref class UriTemplateTable
public class UriTemplateTable
type UriTemplateTable = class
Public Class UriTemplateTable
- Herencia
-
UriTemplateTable
Ejemplos
En el código siguiente se muestra cómo crear UriTemplateTable, rellenarlo y utilizarlo para que coincida con un Uri candidato.
Uri prefix = new Uri("http://localhost/");
//Create a series of templates
UriTemplate weatherByCity = new UriTemplate("weather/{state}/{city}");
UriTemplate weatherByCountry = new UriTemplate("weather/{country}/{village}");
UriTemplate weatherByState = new UriTemplate("weather/{state}");
UriTemplate traffic = new UriTemplate("traffic/*");
UriTemplate wildcard = new UriTemplate("*");
//Create a template table
UriTemplateTable table = new UriTemplateTable(prefix);
//Add each template to the table with some associated data
table.KeyValuePairs.Add(new KeyValuePair<UriTemplate, Object>(weatherByCity, "weatherByCity"));
table.KeyValuePairs.Add(new KeyValuePair<UriTemplate, Object>(weatherByCountry, "weatherByCountry"));
table.KeyValuePairs.Add(new KeyValuePair<UriTemplate, Object>(weatherByState, "weatherByState"));
table.KeyValuePairs.Add(new KeyValuePair<UriTemplate, Object>(traffic, "traffic"));
table.MakeReadOnly(true);
Console.WriteLine("KeyValuePairs:");
foreach (KeyValuePair<UriTemplate, Object> keyPair in table.KeyValuePairs)
{
Console.WriteLine($"{keyPair.Key}, {keyPair.Value}");
}
Console.WriteLine();
//Call MatchSingle to retrieve some match results:
ICollection<UriTemplateMatch> results = null;
Uri weatherInSeattle = new Uri("http://localhost/weather/Washington/Seattle");
results = table.Match(weatherInSeattle);
if( results != null)
{
Console.WriteLine("Matching templates:");
foreach (UriTemplateMatch match in results)
{
Console.WriteLine(match.Template);
}
}
Dim prefix As New Uri("http://localhost/")
' Create a series of templates
Dim weatherByCity As New UriTemplate("weather/ state}/ city}")
Dim weatherByCountry As New UriTemplate("weather/ country}/ village}")
Dim weatherByState As New UriTemplate("weather/ state}")
Dim traffic As New UriTemplate("traffic/*")
Dim wildcard As New UriTemplate("*")
' Create a template table
Dim table As New UriTemplateTable(prefix)
' Add each template to the table with some associated data
table.KeyValuePairs.Add(New KeyValuePair(Of UriTemplate, Object)(weatherByCity, "weatherByCity"))
table.KeyValuePairs.Add(New KeyValuePair(Of UriTemplate, Object)(weatherByCountry, "weatherByCountry"))
table.KeyValuePairs.Add(New KeyValuePair(Of UriTemplate, Object)(weatherByState, "weatherByState"))
table.KeyValuePairs.Add(New KeyValuePair(Of UriTemplate, Object)(traffic, "traffic"))
table.MakeReadOnly(True)
Console.WriteLine("KeyValuePairs:")
For Each keyPair As KeyValuePair(Of UriTemplate, Object) In table.KeyValuePairs
Console.WriteLine(" 0}, 1}", keyPair.Key, keyPair.Value)
Next
Console.WriteLine()
' Call MatchSingle to retrieve some match results:
Dim results As System.Collections.Generic.ICollection(Of UriTemplateMatch) = Nothing
Dim weatherInSeattle As Uri = New Uri("http://localhost/weather/Washington/Seattle")
results = table.Match(weatherInSeattle)
If results IsNot Nothing Then
Console.WriteLine("Matching templates:")
For Each match As UriTemplateMatch In results
Console.WriteLine(" 0}", match.Template)
Next
End If
Comentarios
UriTemplateTable es un conjunto asociativo de objetos UriTemplate enlazado a un objeto elegido por el desarrollador. Le permite hacer coincidir los identificadores uniformes de recursos (URI) del candidato con las plantillas del conjunto y recuperar los datos asociados a las plantillas correspondientes. Se puede cambiar el contenido de UriTemplateTable hasta que se llame al método MakeReadOnly(Boolean). En ese momento se producirá uno de los tipos siguientes de validación:
Cuando se llama a MakeReadOnly(Boolean) al pasar en
false
, UriTemplateTable realiza una comprobación para asegurarse de que la tabla no contiene varias plantillas estructuralmente equivalentes. Si encuentra esas plantillas, inicia una excepción. Este tipo de validación se utiliza junto con MatchSingle(Uri) cuando desea asegurarse de que sólo una plantilla coincide con un URI de entrada.Cuando se llama a MakeReadOnly(Boolean) al pasar en
true
, varias plantillas estructuralmente equivalentes pueden estar contenidas dentro de una UriTemplateTable. Sin embargo, las cadenas de consulta de las plantillas no deben ser ambiguas; se permiten las cadenas de consulta idénticas. Para obtener más información sobre las cadenas de consulta ambiguas, vea UriTemplate y UriTemplateTable.
Constructores
UriTemplateTable() |
Inicializa una nueva instancia de la clase UriTemplateTable. |
UriTemplateTable(IEnumerable<KeyValuePair<UriTemplate,Object>>) |
Inicializa una nueva instancia de la clase UriTemplateTable con la colección de pares clave/valor especificados. |
UriTemplateTable(Uri) |
Inicializa una instancia nueva de la clase UriTemplateTable con la dirección base especificada. |
UriTemplateTable(Uri, IEnumerable<KeyValuePair<UriTemplate,Object>>) |
Inicializa una nueva instancia de la clase UriTemplateTable con la dirección base y la colección de pares clave/valor especificadas. |
Propiedades
BaseAddress |
Obtiene o establece la dirección base para la instancia UriTemplateTable. |
IsReadOnly |
Obtiene un valor que especifica si UriTemplateTable es de solo lectura. |
KeyValuePairs |
Obtiene una colección de pares de clave/valor que se componen de los objetos UriTemplate y sus datos asociados. |
OriginalBaseAddress |
Obtiene la dirección base original. |
Métodos
Equals(Object) |
Determina si el objeto especificado es igual que el objeto actual. (Heredado de Object) |
GetHashCode() |
Sirve como la función hash predeterminada. (Heredado de Object) |
GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
MakeReadOnly(Boolean) |
Hace que UriTemplateTable sea de solo lectura. |
Match(Uri) |
Intenta hacer coincidir el Uri de un candidato con UriTemplateTable. |
MatchSingle(Uri) |
Intenta hacer coincidir el Uri de un candidato con UriTemplateTable. |
MemberwiseClone() |
Crea una copia superficial del Object actual. (Heredado de Object) |
ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |