Sdílet prostřednictvím


UriTemplateTable Třída

Definice

Třída, která představuje asociativní sadu UriTemplate objektů.

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

Příklady

Následující kód ukazuje, jak vytvořit UriTemplateTable, naplnit ho a použít k porovnání s kandidátem 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í sada UriTemplate objektů svázaných s objektem podle výběru vývojáře. Umožňuje porovnat kandidátské identifikátory URI (Uniform Resource Identifiers) se šablonami v sadě a načíst data přidružená k odpovídajícím šablonám. Obsah UriTemplateTable může být změněn až do MakeReadOnly(Boolean) zavolání metody, kdy nastane jeden z následujících typů ověření:

  • Pokud MakeReadOnly(Boolean) se volá předávání false, zkontroluje UriTemplateTable se, že tabulka neobsahuje více strukturálně ekvivalentních šablon. Pokud takové šablony najde, vyvolá výjimku. Tento typ ověřování se používá ve spojení s MatchSingle(Uri) , když chcete zajistit, aby příchozímu identifikátoru URI odpovídala pouze jedna šablona.

  • Pokud MakeReadOnly(Boolean) se volá předávání true, může být v objektu UriTemplateTableobsaženo více strukturně ekvivalentních šablon. Nicméně, žádné řetězce dotazu v šablonách nesmí být nejednoznačné; jsou povoleny identické řetězce dotazu. Další informace o nejednoznačných řetězcích dotazů najdete v tématu UriTemplate a UriTemplateTable.

Konstruktory

UriTemplateTable()

Inicializuje novou instanci UriTemplateTable třídy .

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

Inicializuje novou instanci UriTemplateTable třídy se zadanou kolekcí párů klíč/hodnota.

UriTemplateTable(Uri)

Inicializuje novou instanci UriTemplateTable třídy se zadanou základní adresou.

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

Inicializuje novou instanci UriTemplateTable třídy se zadanou základní adresou a kolekcí párů klíč/hodnota.

Vlastnosti

BaseAddress

Získá nebo nastaví základní adresu instance UriTemplateTable .

IsReadOnly

Získá hodnotu, která určuje, zda UriTemplateTable je jen pro čtení.

KeyValuePairs

Získá kolekci párů klíč/hodnota, které se skládají z UriTemplate objektů a jejich přidružených dat.

OriginalBaseAddress

Získá původní základní adresu.

Metody

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí hashovací funkce.

(Zděděno od Object)
GetType()

Type Získá z aktuální instance.

(Zděděno od Object)
MakeReadOnly(Boolean)

Nastaví režim jen pro UriTemplateTable čtení.

Match(Uri)

Pokusí se spárovat kandidáta Uri s UriTemplateTable.

MatchSingle(Uri)

Pokusí se spárovat kandidáta Uri s UriTemplateTable.

MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Platí pro