Udostępnij za pośrednictwem


UriTemplate Klasa

Definicja

Klasa reprezentująca szablon identyfikatora URI (Uniform Resource Identifier).

public ref class UriTemplate
public class UriTemplate
type UriTemplate = class
Public Class UriTemplate
Dziedziczenie
UriTemplate

Przykłady

Poniższy kod pokazuje, jak utworzyć UriTemplate wystąpienie i powiązać je z identyfikatorem URI kandydata.

UriTemplate template = new UriTemplate("weather/{state}/{city}?forecast={day}");
Uri prefix = new Uri("http://localhost");

Console.WriteLine("PathSegmentVariableNames:");
foreach (string name in template.PathSegmentVariableNames)
{
    Console.WriteLine("     {0}", name);
}
Console.WriteLine();

Console.WriteLine("QueryValueVariableNames:");
foreach (string name in template.QueryValueVariableNames)
{
    Console.WriteLine("     {0}", name);
}
Console.WriteLine();

Uri positionalUri = template.BindByPosition(prefix, "Washington", "Redmond", "Today");

NameValueCollection parameters = new NameValueCollection();
parameters.Add("state", "Washington");
parameters.Add("city", "Redmond");
parameters.Add("day", "Today");
Uri namedUri = template.BindByName(prefix, parameters);

Uri fullUri = new Uri("http://localhost/weather/Washington/Redmond?forecast=today");
UriTemplateMatch results = template.Match(prefix, fullUri);

Console.WriteLine("Matching {0} to {1}", template.ToString(), fullUri.ToString());

if (results != null)
{
    foreach (string variableName in results.BoundVariables.Keys)
    {
        Console.WriteLine("   {0}: {1}", variableName, results.BoundVariables[variableName]);
    }
}
Dim template As UriTemplate = New UriTemplate("weather/{state}/{city}?forecast={day}")
Dim prefix As Uri = New Uri("http://localhost")

Console.WriteLine("PathSegmentVariableNames:")
For Each name As String In template.PathSegmentVariableNames
    Console.WriteLine("     {0}", name)
Next

Console.WriteLine()
Console.WriteLine("QueryValueVariableNames:")
For Each name As String In template.QueryValueVariableNames
    Console.WriteLine("     {0}", name)
Next
Console.WriteLine()

Dim positionalUri As Uri = template.BindByPosition(prefix, "Washington", "Redmond", "Today")

Dim parameters As NameValueCollection = New NameValueCollection()
parameters.Add("state", "Washington")
parameters.Add("city", "Redmond")
parameters.Add("day", "Today")
Dim namedUri As Uri = template.BindByName(prefix, parameters)

Dim fullUri As Uri = New Uri("http://localhost/weather/Washington/Redmond?forecast=today")
Dim results As UriTemplateMatch = template.Match(prefix, fullUri)

Console.WriteLine("Matching {0} to {1}", template.ToString(), fullUri.ToString())

If results IsNot Nothing Then
    For Each variableName As String In results.BoundVariables.Keys
        Console.WriteLine("   {0}: {1}", variableName, results.BoundVariables(variableName))
    Next
End If

Uwagi

Szablon identyfikatora URI umożliwia zdefiniowanie zestawu strukturalnych podobnych identyfikatorów URI. Szablony składają się z dwóch części, ścieżki i zapytania. Ścieżka składa się z serii segmentów rozdzielonych ukośnikiem (/). Każdy segment może mieć wartość literału, wartość zmiennej (zapisaną w nawiasach klamrowych [{ }], ograniczoną do dopasowania zawartości dokładnie jednego segmentu) lub symbol wieloznaczny (zapisany jako gwiazdka [*], która odpowiada "pozostałej części ścieżki"), która musi pojawić się na końcu ścieżki. Wyrażenie zapytania można całkowicie pominąć. Jeśli istnieje, określa nieurządkowaną serię par nazw/wartości. Elementy wyrażenia zapytania mogą być parami literałów (?x=2) lub parami zmiennych (?x={val}). Niezapłacone wartości nie są dozwolone. W poniższych przykładach przedstawiono prawidłowe ciągi szablonu:

  • "pogoda/WA/Seattle"

  • "weather/{state}/{city}"

  • "pogoda/*"

  • "weather/{state}/{city}?forecast=today

  • "weather/{state}/{city}?forecast={day}

Poprzednie szablony identyfikatorów URI mogą być używane do organizowania raportów pogodowych. Segmenty ujęte w nawiasy klamrowe to zmienne, wszystko inne jest literałem. Wystąpienie można przekonwertować UriTemplate na element Uri , zastępując zmienne rzeczywistymi wartościami. Na przykład biorąc szablon "weather/{state}/{city}" i umieszczając wartości zmiennych "{state}" i "{city}" daje "weather/WA/Seattle". Biorąc pod uwagę identyfikator URI kandydata, możesz sprawdzić, czy pasuje do danego szablonu identyfikatora URI, wywołując metodę Match(Uri, Uri). Można również użyć UriTemplate wystąpień, aby utworzyć element Uri na podstawie zestawu wartości zmiennych, wywołując wywołanie lub BindByName(Uri, NameValueCollection) BindByPosition(Uri, String[]).

Konstruktory

UriTemplate(String)

Inicjuje UriTemplate nowe wystąpienie klasy z określonym ciągiem szablonu.

UriTemplate(String, Boolean)

Inicjuje nowe wystąpienie klasy UriTemplate.

UriTemplate(String, Boolean, IDictionary<String,String>)

Inicjuje nowe wystąpienie klasy UriTemplate.

UriTemplate(String, IDictionary<String,String>)

Inicjuje nowe wystąpienie klasy UriTemplate.

Właściwości

Defaults

Pobiera kolekcję par nazw/wartości dla wszystkich domyślnych wartości parametrów.

IgnoreTrailingSlash

Określa, czy końcowe ukośniki "/" w szablonie powinny być ignorowane podczas dopasowywania identyfikatorów URI kandydata.

PathSegmentVariableNames

Pobiera kolekcję nazw zmiennych używanych w segmentach ścieżek w szablonie.

QueryValueVariableNames

Pobiera kolekcję nazw zmiennych używanych w ciągu zapytania w szablonie.

Metody

BindByName(Uri, IDictionary<String,String>)

Tworzy nowy identyfikator URI na podstawie szablonu i kolekcji parametrów.

BindByName(Uri, IDictionary<String,String>, Boolean)

Tworzy nowy identyfikator URI na podstawie szablonu i kolekcji parametrów.

BindByName(Uri, NameValueCollection)

Tworzy nowy identyfikator URI na podstawie szablonu i kolekcji parametrów.

BindByName(Uri, NameValueCollection, Boolean)

Tworzy nowy identyfikator URI na podstawie szablonu i kolekcji parametrów.

BindByPosition(Uri, String[])

Tworzy nowy identyfikator URI z szablonu i tablicę wartości parametrów.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
IsEquivalentTo(UriTemplate)

Wskazuje, czy element UriTemplate jest strukturalnie równoważny innemu.

Match(Uri, Uri)

Próbuje dopasować element Uri do .UriTemplate

MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca reprezentację UriTemplate ciągu wystąpienia.

Dotyczy