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í.
Clase que representa un conjunto asociativo de UriTemplate objetos.
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 un UriTemplateTable, rellenarlo y usarlo para que coincida con un candidato Uri.
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
Es UriTemplateTable un conjunto asociativo de UriTemplate objetos enlazados a un objeto de la elección del desarrollador. Permite hacer coincidir identificadores uniformes de recursos (URI) candidatos con las plantillas del conjunto y recuperar los datos asociados a las plantillas coincidentes. El contenido de UriTemplateTable se puede cambiar hasta que se llame al MakeReadOnly(Boolean) método , en cuyo momento se produce uno de los siguientes tipos de validación:
Cuando MakeReadOnly(Boolean) se llama a pasar
false, las UriTemplateTable comprobaciones para asegurarse de que la tabla no contiene varias plantillas equivalentes estructuralmente. Si encuentra estas plantillas, produce una excepción. Este tipo de validación se usa junto con MatchSingle(Uri) cuando desea asegurarse de que solo una plantilla coincide con un URI entrante.Cuando MakeReadOnly(Boolean) se llama a pasar
true, se pueden incluir varias plantillas equivalentes estructuralmente dentro de .UriTemplateTable Sin embargo, las cadenas de consulta de las plantillas no deben ser ambiguas; se permiten cadenas de consulta idénticas. Para obtener más información sobre las cadenas de consulta ambiguas, vea UriTemplate y UriTemplateTable.
Constructores
| Nombre | Description |
|---|---|
| UriTemplateTable() |
Inicializa una nueva instancia de la clase UriTemplateTable. |
| UriTemplateTable(IEnumerable<KeyValuePair<UriTemplate,Object>>) |
Inicializa una nueva instancia de la UriTemplateTable clase con la colección especificada de pares clave-valor. |
| UriTemplateTable(Uri, IEnumerable<KeyValuePair<UriTemplate,Object>>) |
Inicializa una nueva instancia de la UriTemplateTable clase con la dirección base y la colección especificadas de pares clave-valor. |
| UriTemplateTable(Uri) |
Inicializa una nueva instancia de la UriTemplateTable clase con la dirección base especificada. |
Propiedades
| Nombre | Description |
|---|---|
| BaseAddress |
Obtiene o establece la dirección base de la UriTemplateTable instancia. |
| IsReadOnly |
Obtiene un valor que especifica si es UriTemplateTable de solo lectura. |
| KeyValuePairs |
Obtiene una colección de pares clave-valor que constan de UriTemplate objetos y sus datos asociados. |
| OriginalBaseAddress |
Obtiene la dirección base original. |
Métodos
| Nombre | Description |
|---|---|
| Equals(Object) |
Determina si el objeto especificado es igual al objeto actual. (Heredado de Object) |
| GetHashCode() |
Actúa como función hash predeterminada. (Heredado de Object) |
| GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
| MakeReadOnly(Boolean) |
Convierte el valor de UriTemplateTable solo lectura. |
| Match(Uri) |
Intenta hacer coincidir un candidato Uri con .UriTemplateTable |
| MatchSingle(Uri) |
Intenta hacer coincidir un candidato Uri con .UriTemplateTable |
| MemberwiseClone() |
Crea una copia superficial del Objectactual. (Heredado de Object) |
| ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |