UriTemplateTable Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Classe che rappresenta un set associativo di oggetti UriTemplate.
public ref class UriTemplateTable
public class UriTemplateTable
type UriTemplateTable = class
Public Class UriTemplateTable
- Ereditarietà
-
UriTemplateTable
Esempio
Nel codice seguente viene illustrato come creare una tabella UriTemplateTable, come inserirvi dati e come confrontarla con un URI 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
Commenti
Una tabella UriTemplateTable è un set associativo di oggetti UriTemplate associati a un oggetto scelto dallo sviluppatore. Consente di confrontare gli URI (Uniform Resource Identifier) candidati con i modelli del set e recuperare i dati associati ai modelli corrispondenti. 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:
Quando al metodo MakeReadOnly(Boolean) viene passato il valore
false
, l'oggetto UriTemplateTable verifica se la tabella contiene più modelli strutturalmente equivalenti. Se li rileva, genera un'eccezione. 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.Quando viene chiamato il metodo MakeReadOnly(Boolean) passando
true
, il sistema consente la presenza di più modelli strutturalmente equivalenti all'interno di UriTemplateTable. Tuttavia, nessuna stringa di query contenuta nei modelli deve essere ambigua. È consentita la presenza di stringhe di query identiche. Per altre informazioni sulle stringhe di query ambigue, vedere UriTemplate e UriTemplateTable.
Costruttori
UriTemplateTable() |
Inizializza una nuova istanza della classe UriTemplateTable. |
UriTemplateTable(IEnumerable<KeyValuePair<UriTemplate,Object>>) |
Inizializza una nuova istanza della classe UriTemplateTable con la raccolta specificata di coppie chiave/valore. |
UriTemplateTable(Uri) |
Consente di inizializzare una nuova istanza della classe UriTemplateTable con l'indirizzo di base specificato. |
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. |
Proprietà
BaseAddress |
Ottiene o imposta l'indirizzo di base dell'istanza della classe UriTemplateTable. |
IsReadOnly |
Ottiene un valore che indica se la tabella UriTemplateTable è di sola lettura. |
KeyValuePairs |
Ottiene una raccolta di coppie chiave/valore costituita da oggetti UriTemplate e dai relativi dati associati. |
OriginalBaseAddress |
Ottiene l'indirizzo di base originale. |
Metodi
Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
MakeReadOnly(Boolean) |
Rende la tabella UriTemplateTable di sola lettura. |
Match(Uri) |
Crea una corrispondenza tra un URI Uri candidato e UriTemplateTable. |
MatchSingle(Uri) |
Crea una corrispondenza tra un URI Uri candidato e UriTemplateTable. |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |