UriTemplateTable UriTemplateTable UriTemplateTable UriTemplateTable Class

Definizione

Classe che rappresenta un set associativo di oggetti UriTemplate.A class that represents an associative set of UriTemplate objects.

public ref class UriTemplateTable
public class UriTemplateTable
type UriTemplateTable = class
Public Class UriTemplateTable
Ereditarietà
UriTemplateTableUriTemplateTableUriTemplateTableUriTemplateTable

Esempi

Nel codice seguente viene illustrato come creare una tabella UriTemplateTable, come inserirvi dati e come confrontarla con un URI Uri candidato.The following code shows how to create a UriTemplateTable, populate it, and use it to match against a candidate 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

Commenti

Una tabella UriTemplateTable è un set associativo di oggetti UriTemplate associati a un oggetto scelto dallo sviluppatore.A UriTemplateTable is an associative set of UriTemplate objects bound to an object of the developer's choosing. Consente di confrontare gli URI (Uniform Resource Identifier) candidati con i modelli del set e recuperare i dati associati ai modelli corrispondenti.It allows you to match candidate Uniform Resource Identifiers (URIs) against the templates in the set and retrieve the data associated with the matching templates. Il contenuto della tabella UriTemplateTable può essere modificato fino alla chiamata del metodo MakeReadOnly(Boolean). Dopo tale chiamata, viene eseguito uno dei tipi seguenti di convalida:The contents of UriTemplateTable can be changed until the MakeReadOnly(Boolean) method is called, at which time one of following types of validation occurs:

  • Quando al metodo MakeReadOnly(Boolean) viene passato il valore false, l'oggetto UriTemplateTable verifica se la tabella contiene più modelli strutturalmente equivalenti.When MakeReadOnly(Boolean) is called passing in false, the UriTemplateTable checks to make sure the table contains no multiple structurally-equivalent templates. Se li rileva, genera un'eccezione.If it finds such templates, it throws an exception. Questo tipo di convalida viene utilizzato insieme al metodo MatchSingle(Uri) quando si desidera garantire che solo un modello corrisponda a un determinato URI in arrivo.This type of validation is used in conjunction with MatchSingle(Uri) when you want to ensure only one template matches an incoming URI.

  • Quando viene chiamato il metodo MakeReadOnly(Boolean) passando true, il sistema consente la presenza di più modelli strutturalmente equivalenti all'interno di UriTemplateTable.When MakeReadOnly(Boolean) is called passing in true, multiple structurally-equivalent templates can be contained within a UriTemplateTable. Tuttavia, nessuna stringa di query contenuta nei modelli deve essere ambigua. È consentita la presenza di stringhe di query identiche.However, any query strings in the templates must not be ambiguous; identical query strings are allowed. Per altre informazioni sulle stringhe di query ambigue, vedere UriTemplate e UriTemplateTable.For more information about ambiguous query strings, see UriTemplate and UriTemplateTable.

Costruttori

UriTemplateTable() UriTemplateTable() UriTemplateTable() UriTemplateTable()

Inizializza una nuova istanza della classe UriTemplateTable.Initializes a new instance of the UriTemplateTable class.

UriTemplateTable(IEnumerable<KeyValuePair<UriTemplate,Object>>) UriTemplateTable(IEnumerable<KeyValuePair<UriTemplate,Object>>) UriTemplateTable(IEnumerable<KeyValuePair<UriTemplate,Object>>) UriTemplateTable(IEnumerable<KeyValuePair<UriTemplate,Object>>)

Inizializza una nuova istanza della classe UriTemplateTable con la raccolta specificata di coppie chiave/valore.Initializes a new instance of the UriTemplateTable class with the specified collection of key/value pairs.

UriTemplateTable(Uri) UriTemplateTable(Uri) UriTemplateTable(Uri) UriTemplateTable(Uri)

Consente di inizializzare una nuova istanza della classe UriTemplateTable con l'indirizzo di base specificato.Initializes a new instance of the UriTemplateTable class with the specified base address.

UriTemplateTable(Uri, IEnumerable<KeyValuePair<UriTemplate,Object>>) UriTemplateTable(Uri, IEnumerable<KeyValuePair<UriTemplate,Object>>) UriTemplateTable(Uri, IEnumerable<KeyValuePair<UriTemplate,Object>>) UriTemplateTable(Uri, IEnumerable<KeyValuePair<UriTemplate,Object>>)

Consente di inizializzare una nuova istanza della classe UriTemplateTable con l'indirizzo di base e la raccolta di coppie chiave/valore specificati.Initializes a new instance of the UriTemplateTable class with the specified base address and collection of key/value pairs.

Proprietà

BaseAddress BaseAddress BaseAddress BaseAddress

Ottiene o imposta l'indirizzo di base dell'istanza della classe UriTemplateTable.Gets or sets the base address for the UriTemplateTable instance.

IsReadOnly IsReadOnly IsReadOnly IsReadOnly

Ottiene un valore che indica se la tabella UriTemplateTable è di sola lettura.Gets a value that specifies whether the UriTemplateTable is read only.

KeyValuePairs KeyValuePairs KeyValuePairs KeyValuePairs

Ottiene una raccolta di coppie chiave/valore costituita da oggetti UriTemplate e dai relativi dati associati.Gets a collection of key/value pairs that consist of UriTemplate objects and their associated data.

OriginalBaseAddress OriginalBaseAddress OriginalBaseAddress OriginalBaseAddress

Ottiene l'indirizzo di base originale.Gets the original base address.

Metodi

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Inherited from Object)
MakeReadOnly(Boolean) MakeReadOnly(Boolean) MakeReadOnly(Boolean) MakeReadOnly(Boolean)

Rende la tabella UriTemplateTable di sola lettura.Makes the UriTemplateTable read only.

Match(Uri) Match(Uri) Match(Uri) Match(Uri)

Crea una corrispondenza tra un URI Uri candidato e UriTemplateTable.Attempts to match a candidate Uri to the UriTemplateTable.

MatchSingle(Uri) MatchSingle(Uri) MatchSingle(Uri) MatchSingle(Uri)

Crea una corrispondenza tra un URI Uri candidato e UriTemplateTable.Attempts to match a candidate Uri to the UriTemplateTable.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Inherited from Object)

Si applica a