UriTemplateTable Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Eine Klasse, die einen assoziativen Satz von UriTemplate-Objekten darstellt.
public ref class UriTemplateTable
public class UriTemplateTable
type UriTemplateTable = class
Public Class UriTemplateTable
- Vererbung
-
UriTemplateTable
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie eine UriTemplateTable erstellt, gefüllt und für den Abgleich mit einem möglichen Uri verwendet wird.
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
Hinweise
Eine UriTemplateTable ist ein assoziativer Satz von UriTemplate-Objekten, die an ein Objekt nach Wahl des Entwicklers gebunden sind. Sie ermöglicht Ihnen, mögliche URIs (Uniform Resource Identifiers) mit den Vorlagen im Satz abzugleichen und die den übereinstimmenden Vorlagen zugeordneten Daten abzurufen. Der Inhalt der UriTemplateTable kann geändert werden, bis die MakeReadOnly(Boolean)-Methode aufgerufen wird und eine der folgenden Validierungen erfolgt:
Wenn MakeReadOnly(Boolean) bei der Übergabe von
false
aufgerufen wird, überprüft die UriTemplateTable, ob die Tabelle mehrere strukturell äquivalente Vorlagen enthält. Wenn solche Vorlagen gefunden werden, wird eine Ausnahme ausgelöst. Diese Validierung wird zusammen mit MatchSingle(Uri) verwendet, wenn sichergestellt werden soll, dass nur eine Vorlage einem eingehenden URI entspricht.Wenn MakeReadOnly(Boolean) bei der Übergabe von
true
aufgerufen wird, können in einer UriTemplateTable mehrere strukturell äquivalente Vorlagen enthalten sein. Abfragezeichenfolgen in den Vorlagen dürfen jedoch nicht mehrdeutig sein; identische Abfragezeichenfolgen sind zulässig. Weitere Informationen zu mehrdeutigen Abfragezeichenfolgen finden Sie unter UriTemplate und UriTemplateTable.
Konstruktoren
UriTemplateTable() |
Initialisiert eine neue Instanz der UriTemplateTable-Klasse. |
UriTemplateTable(IEnumerable<KeyValuePair<UriTemplate,Object>>) |
Initialisiert eine neue Instanz der UriTemplateTable-Klasse mit der angegebenen Auflistung von Schlüssel-Wert-Paaren. |
UriTemplateTable(Uri) |
Initialisiert eine neue Instanz der UriTemplateTable-Klasse mit der angegebenen Basisadresse. |
UriTemplateTable(Uri, IEnumerable<KeyValuePair<UriTemplate,Object>>) |
Initialisiert eine neue Instanz der UriTemplateTable-Klasse mit der angegebenen Basisadresse und Auflistung von Schlüssel-Wert-Paaren. |
Eigenschaften
BaseAddress |
Ruft die Basisadresse für die UriTemplateTable-Instanz ab oder legt sie fest. |
IsReadOnly |
Ruft einen Wert ab, der angibt, ob die UriTemplateTable schreibgeschützt ist. |
KeyValuePairs |
Ruft eine Auflistung von Schlüssel-Wert-Paaren ab, die aus UriTemplate-Objekten und deren zugeordneten Daten bestehen. |
OriginalBaseAddress |
Ruft die ursprüngliche Basisadresse ab. |
Methoden
Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
GetHashCode() |
Fungiert als Standardhashfunktion. (Geerbt von Object) |
GetType() |
Ruft den Type der aktuellen Instanz ab. (Geerbt von Object) |
MakeReadOnly(Boolean) |
Macht die UriTemplateTable schreibgeschützt. |
Match(Uri) |
Versucht, einen möglichen Uri mit der UriTemplateTable abzugleichen. |
MatchSingle(Uri) |
Versucht, einen möglichen Uri mit der UriTemplateTable abzugleichen. |
MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |