UriTemplate Klasse

Definition

Eine Klasse, die eine URI-Vorlage (Uniform Resource Identifier) darstellt.

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

Beispiele

Der folgende Code veranschaulicht, wie eine UriTemplate Instanz erstellt und an einen Kandidaten-URI gebunden und zugeordnet wird.

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

Hinweise

Mit einer URI-Vorlage können Sie einen Satz strukturell ähnlicher URIs definieren. Vorlagen bestehen aus zwei Teilen, einem Pfad und einer Abfrage. Ein Pfad besteht aus einer Reihe von Segmenten, die durch einen Schrägstrich (/) getrennt sind. Jedes Segment kann über einen Literalwert, einen Variablenwert (wird in geschweiften Klammern [{ }] angegeben und muss dem Inhalt genau eines Segments entsprechen) oder einen Platzhalter verfügen (wird als Sternchen [*] angegeben, das als "restlicher Pfad" interpretiert wird), der am Ende des Pfads stehen muss. Der Abfrageausdruck kann vollständig weggelassen werden. Wenn vorhanden, gibt sie eine nicht sortierte Reihe von Namen-Wert-Paaren an. Elemente des Abfrageausdrucks können entweder Literalpaare (?x=2) oder Variablenpaare (?x={val}) sein. Ungepaarte Werte sind nicht zulässig. Die folgenden Beispiele zeigen gültige Vorlagenzeichenfolgen:

  • "wetter/WA/Seattle"

  • "wetter/{state}/{city}"

  • "Wetter/*"

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

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

Die vorherigen URI-Vorlagen können zum Organisieren von Wetterberichten verwendet werden. Segmente, die in geschweifte Klammern eingeschlossen sind, sind Variablen, alles andere ist ein Literal. Sie können eine Instanz in eine UriTemplateUri Instanz konvertieren, indem Sie Variablen durch tatsächliche Werte ersetzen. Wenn Sie beispielsweise die Vorlage "wetter/{state}/{city}" verwenden und Werte für die Variablen "{state}" und "{city}" angeben, erhalten Sie "wetter/WA/Seattle". Angesichts eines Kandidaten-URI können Sie testen, ob sie einer bestimmten URI-Vorlage entspricht, indem Sie aufrufen Match(Uri, Uri). Sie können instanzen auch verwenden UriTemplate , um eine Uri aus einer Reihe von Variablenwerten zu erstellen, indem Sie aufrufen BindByName(Uri, NameValueCollection) oder BindByPosition(Uri, String[]).

Konstruktoren

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

Initialisiert eine neue Instanz der UriTemplate-Klasse.

UriTemplate(String, Boolean)

Initialisiert eine neue Instanz der UriTemplate-Klasse.

UriTemplate(String, IDictionary<String,String>)

Initialisiert eine neue Instanz der UriTemplate-Klasse.

UriTemplate(String)

Initialisiert eine neue Instanz der UriTemplate Klasse mit der angegebenen Vorlagenzeichenfolge.

Eigenschaften

Name Beschreibung
Defaults

Ruft eine Auflistung von Name/Wert-Paaren für alle Standardwerte ab.

IgnoreTrailingSlash

Gibt an, ob nachgestellte Schrägstriche in der Vorlage ignoriert werden sollen, wenn kandidatenbasierte URIs übereinstimmen.

PathSegmentVariableNames

Ruft eine Auflistung von Variablennamen ab, die in Pfadsegmenten in der Vorlage verwendet werden.

QueryValueVariableNames

Ruft eine Auflistung von Variablennamen ab, die in der Abfragezeichenfolge in der Vorlage verwendet werden.

Methoden

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

Erstellt einen neuen URI aus der Vorlage und der Sammlung von Parametern.

BindByName(Uri, IDictionary<String,String>)

Erstellt einen neuen URI aus der Vorlage und der Sammlung von Parametern.

BindByName(Uri, NameValueCollection, Boolean)

Erstellt einen neuen URI aus der Vorlage und der Sammlung von Parametern.

BindByName(Uri, NameValueCollection)

Erstellt einen neuen URI aus der Vorlage und der Sammlung von Parametern.

BindByPosition(Uri, String[])

Erstellt einen neuen URI aus der Vorlage und ein Array von Parameterwerten.

Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
IsEquivalentTo(UriTemplate)

Gibt an, ob eine UriTemplate strukturell einer anderen entspricht.

Match(Uri, Uri)

Versucht, eine Uri Übereinstimmung mit einem .UriTemplate

MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolgendarstellung der UriTemplate Instanz zurück.

Gilt für: