Compartir a través de


UriTemplateTable Clase

Definición

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)

Se aplica a