UriTemplateTable UriTemplateTable UriTemplateTable UriTemplateTable Class

Definice

Třída, která představuje asociativní sadu UriTemplate objektů.A class that represents an associative set of UriTemplate objects.

public ref class UriTemplateTable
public class UriTemplateTable
type UriTemplateTable = class
Public Class UriTemplateTable
Dědičnost
UriTemplateTableUriTemplateTableUriTemplateTableUriTemplateTable

Příklady

Následující kód ukazuje UriTemplateTable, jak vytvořit, naplnit ho a použít pro porovnání s kandidátem Uri.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

Poznámky

A UriTemplateTable je asociativní UriTemplate sada objektů svázaných s objektem výběru vývojáře.A UriTemplateTable is an associative set of UriTemplate objects bound to an object of the developer's choosing. Umožňuje párovat kandidáty identifikátorů URI (Uniform Resource Identifier) proti šablonám v sadě a načíst data přidružená k odpovídajícím šablonám.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. Obsah UriTemplateTable lze změnit, MakeReadOnly(Boolean) dokud není volána metoda, v níž je k dispozici jeden z následujících typů ověřování:The contents of UriTemplateTable can be changed until the MakeReadOnly(Boolean) method is called, at which time one of following types of validation occurs:

  • Když MakeReadOnly(Boolean) je volána metoda Pass falsein, UriTemplateTable zkontroluje, zda tabulka neobsahuje žádné vícenásobné strukturální šablony.When MakeReadOnly(Boolean) is called passing in false, the UriTemplateTable checks to make sure the table contains no multiple structurally-equivalent templates. Pokud nalezne takové šablony, vyvolá výjimku.If it finds such templates, it throws an exception. Tento typ ověřování se používá ve spojení s MatchSingle(Uri) tím, že chcete zajistit, aby pouze jedna šablona odpovídala příchozímu identifikátoru URI.This type of validation is used in conjunction with MatchSingle(Uri) when you want to ensure only one template matches an incoming URI.

  • Při MakeReadOnly(Boolean) volání metody true, která je volána, mohou být v rámci typu obsaženy různé šablony s UriTemplateTableekvivalentními strukturami.When MakeReadOnly(Boolean) is called passing in true, multiple structurally-equivalent templates can be contained within a UriTemplateTable. Nicméně všechny řetězce dotazů v šablonách nesmí být dvojznačné; jsou povoleny identické řetězce dotazů.However, any query strings in the templates must not be ambiguous; identical query strings are allowed. Další informace o nejednoznačných řetězcích dotazů naleznete v tématu UriTemplate a UriTemplateTable.For more information about ambiguous query strings, see UriTemplate and UriTemplateTable.

Konstruktory

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

Inicializuje novou instanci třídy UriTemplateTable třídy.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>>)

Inicializuje novou instanci UriTemplateTable třídy se zadanou kolekcí párů klíč/hodnota.Initializes a new instance of the UriTemplateTable class with the specified collection of key/value pairs.

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

Inicializuje novou instanci UriTemplateTable třídy se zadanou základní adresou.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>>)

Inicializuje novou instanci UriTemplateTable třídy se zadanou základní adresou a kolekcí párů klíč/hodnota.Initializes a new instance of the UriTemplateTable class with the specified base address and collection of key/value pairs.

Vlastnosti

BaseAddress BaseAddress BaseAddress BaseAddress

Získá nebo nastaví základní adresu UriTemplateTable instance.Gets or sets the base address for the UriTemplateTable instance.

IsReadOnly IsReadOnly IsReadOnly IsReadOnly

Získá hodnotu, která určuje, zda UriTemplateTable je pouze pro čtení.Gets a value that specifies whether the UriTemplateTable is read only.

KeyValuePairs KeyValuePairs KeyValuePairs KeyValuePairs

Získá kolekci párů klíč/hodnota, které se skládají z UriTemplate objektů a jejich přidružených dat.Gets a collection of key/value pairs that consist of UriTemplate objects and their associated data.

OriginalBaseAddress OriginalBaseAddress OriginalBaseAddress OriginalBaseAddress

Načte původní základní adresu.Gets the original base address.

Metody

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

Určuje, zda se zadaný objekt rovná aktuálnímu objektu.Determines whether the specified object is equal to the current object.

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

Slouží jako výchozí funkce hash.Serves as the default hash function.

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

Type Získá aktuální instanci.Gets the Type of the current instance.

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

Nastaví jen UriTemplateTable pro čtení.Makes the UriTemplateTable read only.

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

Pokusí se porovnat kandidáta Uri UriTemplateTables.Attempts to match a candidate Uri to the UriTemplateTable.

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

Pokusí se porovnat kandidáta Uri UriTemplateTables.Attempts to match a candidate Uri to the UriTemplateTable.

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

Vytvoří kopii aktuálního Objectseznamu.Creates a shallow copy of the current Object.

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

Vrací řetězec, který představuje aktuální objekt.Returns a string that represents the current object.

(Inherited from Object)

Platí pro