UriTemplateTable UriTemplateTable UriTemplateTable UriTemplateTable Class

Definition

Eine Klasse, die einen assoziativen Satz von UriTemplate-Objekten darstellt.A class that represents an associative set of UriTemplate objects.

public ref class UriTemplateTable
public class UriTemplateTable
type UriTemplateTable = class
Public Class UriTemplateTable
Vererbung
UriTemplateTableUriTemplateTableUriTemplateTableUriTemplateTable

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie eine UriTemplateTable erstellt, gefüllt und für den Abgleich mit einem möglichen Uri verwendet wird.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

Hinweise

Eine UriTemplateTable ist ein assoziativer Satz von UriTemplate-Objekten, die an ein Objekt nach Wahl des Entwicklers gebunden sind.A UriTemplateTable is an associative set of UriTemplate objects bound to an object of the developer's choosing. Sie ermöglicht Ihnen, mögliche URIs (Uniform Resource Identifiers) mit den Vorlagen im Satz abzugleichen und die den übereinstimmenden Vorlagen zugeordneten Daten abzurufen.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. Der Inhalt der UriTemplateTable kann geändert werden, bis die MakeReadOnly(Boolean)-Methode aufgerufen wird und eine der folgenden Validierungen erfolgt:The contents of UriTemplateTable can be changed until the MakeReadOnly(Boolean) method is called, at which time one of following types of validation occurs:

  • Wenn MakeReadOnly(Boolean) bei der Übergabe von false aufgerufen wird, überprüft die UriTemplateTable, ob die Tabelle mehrere strukturell äquivalente Vorlagen enthält.When MakeReadOnly(Boolean) is called passing in false, the UriTemplateTable checks to make sure the table contains no multiple structurally-equivalent templates. Wenn solche Vorlagen gefunden werden, wird eine Ausnahme ausgelöst.If it finds such templates, it throws an exception. Diese Validierung wird zusammen mit MatchSingle(Uri) verwendet, wenn sichergestellt werden soll, dass nur eine Vorlage einem eingehenden URI entspricht.This type of validation is used in conjunction with MatchSingle(Uri) when you want to ensure only one template matches an incoming URI.

  • Wenn MakeReadOnly(Boolean) bei der Übergabe von true aufgerufen wird, können in einer UriTemplateTable mehrere strukturell äquivalente Vorlagen enthalten sein.When MakeReadOnly(Boolean) is called passing in true, multiple structurally-equivalent templates can be contained within a UriTemplateTable. Abfragezeichenfolgen in den Vorlagen dürfen jedoch nicht mehrdeutig sein; identische Abfragezeichenfolgen sind zulässig.However, any query strings in the templates must not be ambiguous; identical query strings are allowed. Weitere Informationen zu mehrdeutigen Abfrage Zeichenfolgen finden Sie unter UriTemplate und UriTemplateTable.For more information about ambiguous query strings, see UriTemplate and UriTemplateTable.

Konstruktoren

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

Initialisiert eine neue Instanz der UriTemplateTable-Klasse.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>>)

Initialisiert eine neue Instanz der UriTemplateTable-Klasse mit der angegebenen Auflistung von Schlüssel-Wert-Paaren.Initializes a new instance of the UriTemplateTable class with the specified collection of key/value pairs.

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

Initialisiert eine neue Instanz der UriTemplateTable-Klasse mit der angegebenen Basisadresse.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>>)

Initialisiert eine neue Instanz der UriTemplateTable-Klasse mit der angegebenen Basisadresse und Auflistung von Schlüssel-Wert-Paaren.Initializes a new instance of the UriTemplateTable class with the specified base address and collection of key/value pairs.

Eigenschaften

BaseAddress BaseAddress BaseAddress BaseAddress

Ruft die Basisadresse für die UriTemplateTable-Instanz ab oder legt sie fest.Gets or sets the base address for the UriTemplateTable instance.

IsReadOnly IsReadOnly IsReadOnly IsReadOnly

Ruft einen Wert ab, der angibt, ob die UriTemplateTable schreibgeschützt ist.Gets a value that specifies whether the UriTemplateTable is read only.

KeyValuePairs KeyValuePairs KeyValuePairs KeyValuePairs

Ruft eine Auflistung von Schlüssel-Wert-Paaren ab, die aus UriTemplate-Objekten und deren zugeordneten Daten bestehen.Gets a collection of key/value pairs that consist of UriTemplate objects and their associated data.

OriginalBaseAddress OriginalBaseAddress OriginalBaseAddress OriginalBaseAddress

Ruft die ursprüngliche Basisadresse ab.Gets the original base address.

Methoden

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

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.Determines whether the specified object is equal to the current object.

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

Fungiert als Standardhashfunktion.Serves as the default hash function.

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

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

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

Macht die UriTemplateTable schreibgeschützt.Makes the UriTemplateTable read only.

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

Versucht, einen möglichen Uri mit der UriTemplateTable abzugleichen.Attempts to match a candidate Uri to the UriTemplateTable.

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

Versucht, einen möglichen Uri mit der UriTemplateTable abzugleichen.Attempts to match a candidate Uri to the UriTemplateTable.

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

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

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

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Inherited from Object)

Gilt für: