UriTemplateTable Klass

Definition

En klass som representerar en associativ uppsättning UriTemplate objekt.

public ref class UriTemplateTable
public class UriTemplateTable
type UriTemplateTable = class
Public Class UriTemplateTable
Arv
UriTemplateTable

Exempel

Följande kod visar hur du skapar en UriTemplateTable, fyller i den och använder den för att matcha mot en kandidat 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

Kommentarer

A UriTemplateTable är en associativ uppsättning UriTemplate objekt som är bundna till ett objekt som utvecklaren väljer. Det gör att du kan matcha kandidat-URI:er (Uniform Resource Identifiers) mot mallarna i uppsättningen och hämta data som är associerade med matchande mallar. Innehållet i UriTemplateTable kan ändras tills metoden anropas MakeReadOnly(Boolean) , då en av följande typer av validering inträffar:

  • När MakeReadOnly(Boolean) kallas för att skicka in falseUriTemplateTable kontrollerar du att tabellen inte innehåller några strukturellt likvärdiga mallar. Om den hittar sådana mallar utlöser den ett undantag. Den här typen av validering används tillsammans med MatchSingle(Uri) när du vill se till att endast en mall matchar en inkommande URI.

  • När MakeReadOnly(Boolean) kallas för att skicka in truekan flera strukturellt likvärdiga mallar finnas i en UriTemplateTable. Alla frågesträngar i mallarna får dock inte vara tvetydiga. identiska frågesträngar tillåts. Mer information om tvetydiga frågesträngar finns i UriTemplate och UriTemplateTable.

Konstruktorer

Name Description
UriTemplateTable()

Initierar en ny instans av UriTemplateTable klassen.

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

Initierar en ny instans av UriTemplateTable klassen med den angivna samlingen nyckel/värde-par.

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

Initierar en ny instans av UriTemplateTable klassen med den angivna basadressen och samlingen av nyckel/värde-par.

UriTemplateTable(Uri)

Initierar en ny instans av UriTemplateTable klassen med den angivna basadressen.

Egenskaper

Name Description
BaseAddress

Hämtar eller anger basadressen för instansen UriTemplateTable .

IsReadOnly

Hämtar ett värde som anger om är UriTemplateTable skrivskyddat.

KeyValuePairs

Hämtar en samling nyckel/värde-par som består av UriTemplate objekt och deras associerade data.

OriginalBaseAddress

Hämtar den ursprungliga basadressen.

Metoder

Name Description
Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
MakeReadOnly(Boolean)

Gör skrivskyddad UriTemplateTable .

Match(Uri)

Försöker matcha en kandidat Uri till UriTemplateTable.

MatchSingle(Uri)

Försöker matcha en kandidat Uri till UriTemplateTable.

MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Gäller för