UriTemplate Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
Im folgenden Codebeispiel wird veranschaulicht, wie eine UriTemplate-Instanz erstellt und an einen möglichen URI gebunden und damit abgeglichen 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 (/) voneinander getrennt werden. 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. Sofern der Abfrageausdruck vorhanden ist, wird eine ungeordnete Reihe von Name-Wert-Paaren angegeben. Bei den Elementen des Abfrageausdrucks kann es sich entweder um literale Paare (? x=2) oder variable Paare (?x={val}) handeln. Alleinstehende Werte sind nicht zulässig. Die folgenden Beispiele veranschaulichen gültige Vorlagenzeichenfolgen:
"Wetter/BW/Mannheim"
"Wetter/{Bundesland}/{Stadt}"
"Wetter/*"
"Wetter/{Bundesland}/{Stadt}?forecast=heute
"Wetter/{Bundesland}/{Stadt}?forecast={Tag}
Die vorangehenden URI-Vorlagen können zum Organisieren von Wetterberichten verwendet werden. In geschweifte Klammern eingeschlossene Segmente sind Variablen, alle anderen sind Literale. Sie können eine UriTemplate-Instanz in einen Uri konvertieren, indem Sie Variablen durch tatsächliche Werte ersetzen. Wenn Sie beispielsweise in die Vorlage "Wetter/{Bundesland}/{Stadt}" Werte für die Variablen "{Bundesland}" und "{Stadt}" eingeben, erhalten Sie "Wetter/BW/Mannheim". wenn ein möglicher URI gegeben ist, können Sie durch Aufrufen von Match(Uri, Uri) testen, ob er mit einer bestimmten URI-Vorlage übereinstimmt. Außerdem können Sie mithilfe von UriTemplate-Instanzen einen Uri aus einem Satz von Variablenwerten erstellen, indem Sie BindByName(Uri, NameValueCollection) oder BindByPosition(Uri, String[]) aufrufen.
Konstruktoren
UriTemplate(String) |
Initialisiert eine neue Instanz der UriTemplate-Klasse mit der angegebenen Vorlagenzeichenfolge. |
UriTemplate(String, Boolean) |
Initialisiert eine neue Instanz der UriTemplate-Klasse. |
UriTemplate(String, Boolean, IDictionary<String,String>) |
Initialisiert eine neue Instanz der UriTemplate-Klasse. |
UriTemplate(String, IDictionary<String,String>) |
Initialisiert eine neue Instanz der UriTemplate-Klasse. |
Eigenschaften
Defaults |
Ruft eine Auflistung von Name/Wert-Paaren für sämtliche Standardparameterwerte ab. |
IgnoreTrailingSlash |
Gibt an, ob nachstehende Schrägstriche „/“ in der Vorlage beim Vergleich mit möglichen URIs ignoriert werden sollen. |
PathSegmentVariableNames |
Ruft eine Auflistung der Variablennamen ab, die innerhalb der Pfadsegmente in der Vorlage verwendet werden. |
QueryValueVariableNames |
Ruft eine Auflistung der Variablennamen ab, die innerhalb der Abfragezeichenfolge in der Vorlage verwendet werden. |
Methoden
BindByName(Uri, IDictionary<String,String>) |
Erstellt einen neuen URI aus der Vorlage und der Parameterauflistung. |
BindByName(Uri, IDictionary<String,String>, Boolean) |
Erstellt einen neuen URI aus der Vorlage und der Parameterauflistung. |
BindByName(Uri, NameValueCollection) |
Erstellt einen neuen URI aus der Vorlage und der Parameterauflistung. |
BindByName(Uri, NameValueCollection, Boolean) |
Erstellt einen neuen URI aus der Vorlage und der Parameterauflistung. |
BindByPosition(Uri, String[]) |
Erstellt einen neuen URI aus der Vorlage und einem Array von Parameterwerten. |
Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
GetHashCode() |
Fungiert als Standardhashfunktion. (Geerbt von Object) |
GetType() |
Ruft den Type der aktuellen Instanz ab. (Geerbt von Object) |
IsEquivalentTo(UriTemplate) |
Gibt an, ob eine UriTemplate strukturell äquivalent zu einer anderen ist. |
Match(Uri, Uri) |
Versucht, einen Uri mit einer UriTemplate abzugleichen. |
MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
ToString() |
Gibt eine Zeichenfolgendarstellung der UriTemplate-Instanz zurück. |