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 jej a použít jej 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 výběru vývojáře. Umožňuje spárovat kandidátské identifikátory URI (Uniform Resource Identifier) vůči šablonám v sadě a načíst data přidružená k odpovídajícím šablonám. Obsah UriTemplateTable lze změnit, dokud MakeReadOnly(Boolean) se metoda nevolá, kdy dojde k jednomu z následujících typů ověření:

  • Při MakeReadOnly(Boolean) volání předávání falseUriTemplateTable zkontroluje, ž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) tím, že chcete zajistit, aby příchozí identifikátor URI odpovídal pouze jedné šabloně.

  • Pokud MakeReadOnly(Boolean) se nazývá předávání true, více strukturálně ekvivalentní šablony mohou být obsaženy v objektu UriTemplateTable. Nicméně všechny ř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 dotazu naleznete v tématu UriTemplate a UriTemplateTable.

Konstruktory

Name Description
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, IEnumerable<KeyValuePair<UriTemplate,Object>>)

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

UriTemplateTable(Uri)

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

Vlastnosti

Name Description
BaseAddress

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

IsReadOnly

Získá hodnotu, která určuje, zda je jen pro UriTemplateTable č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

Name Description
Equals(Object)

Určuje, zda je zadaný objekt roven aktuálnímu objektu.

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

Slouží jako výchozí funkce hash.

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

Získá Type aktuální instance.

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

Nastaví jen pro UriTemplateTable čtení.

Match(Uri)

Pokusí se shodovat s kandidátem UriUriTemplateTable.

MatchSingle(Uri)

Pokusí se shodovat s kandidátem UriUriTemplateTable.

MemberwiseClone()

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

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

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

(Zděděno od Object)

Platí pro