UriTemplate Klasse

Definition

Eine Klasse, die eine URI-Vorlage (Uniform Resource Identifier) darstellt.A class that represents a Uniform Resource Identifier (URI) template.

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.The following code demonstrates how to create a UriTemplate instance, and bind and match it to a candidate URI.

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.A URI template allows you to define a set of structurally similar URIs. Vorlagen bestehen aus zwei Teilen, einem Pfad und einer Abfrage.Templates are composed of two parts, a path and a query. Ein Pfad besteht aus einer Reihe von Segmenten, die durch einen Schrägstrich (/) voneinander getrennt werden.A path consists of a series of segments delimited by a slash (/). 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.Each segment can have a literal value, a variable value (written within curly braces [{ }], constrained to match the contents of exactly one segment), or a wildcard (written as an asterisk [*], which matches "the rest of the path"), which must appear at the end of the path. Der Abfrageausdruck kann vollständig weggelassen werden.The query expression can be omitted entirely. Sofern der Abfrageausdruck vorhanden ist, wird eine ungeordnete Reihe von Name-Wert-Paaren angegeben.If present, it specifies an unordered series of name/value pairs. Bei den Elementen des Abfrageausdrucks kann es sich entweder um literale Paare (? x=2) oder variable Paare (?x={val}) handeln.Elements of the query expression can be either literal pairs (?x=2) or variable pairs (?x={val}). Alleinstehende Werte sind nicht zulässig.Unpaired values are not permitted. Die folgenden Beispiele veranschaulichen gültige Vorlagenzeichenfolgen:The following examples show valid template strings:

  • "Wetter/BW/Mannheim""weather/WA/Seattle"

  • "Wetter/{Bundesland}/{Stadt}""weather/{state}/{city}"

  • "Wetter/*""weather/*"

  • "Wetter/{Bundesland}/{Stadt}?forecast=heute"weather/{state}/{city}?forecast=today

  • "Wetter/{Bundesland}/{Stadt}?forecast={Tag}"weather/{state}/{city}?forecast={day}

Die vorangehenden URI-Vorlagen können zum Organisieren von Wetterberichten verwendet werden.The preceding URI templates might be used for organizing weather reports. In geschweifte Klammern eingeschlossene Segmente sind Variablen, alle anderen sind Literale.Segments enclosed in curly braces are variables, everything else is a literal. Sie können eine UriTemplate-Instanz in einen Uri konvertieren, indem Sie Variablen durch tatsächliche Werte ersetzen.You can convert a UriTemplate instance into a Uri by replacing variables with actual values. Wenn Sie beispielsweise in die Vorlage "Wetter/{Bundesland}/{Stadt}" Werte für die Variablen "{Bundesland}" und "{Stadt}" eingeben, erhalten Sie "Wetter/BW/Mannheim".For example, taking the template "weather/{state}/{city}" and putting in values for the variables "{state}" and "{city}" gives you "weather/WA/Seattle". 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.Given a candidate URI, you can test whether it matches a given URI template by calling Match(Uri, Uri). 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.You can also use UriTemplate instances to create a Uri from a set of variable values by calling BindByName(Uri, NameValueCollection) or BindByPosition(Uri, String[]).

Konstruktoren

UriTemplate(String)

Initialisiert eine neue Instanz der UriTemplate-Klasse mit der angegebenen Vorlagenzeichenfolge.Initializes a new instance of the UriTemplate class with the specified template string.

UriTemplate(String, Boolean)

Initialisiert eine neue Instanz der UriTemplate-Klasse.Initializes a new instance of the UriTemplate class.

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

Initialisiert eine neue Instanz der UriTemplate-Klasse.Initializes a new instance of the UriTemplate class.

UriTemplate(String, IDictionary<String,String>)

Initialisiert eine neue Instanz der UriTemplate-Klasse.Initializes a new instance of the UriTemplate class.

Eigenschaften

Defaults

Ruft eine Auflistung von Name/Wert-Paaren für sämtliche Standardparameterwerte ab.Gets a collection of name/value pairs for any default parameter values.

IgnoreTrailingSlash

Gibt an, ob nachstehende Schrägstriche „/“ in der Vorlage beim Vergleich mit möglichen URIs ignoriert werden sollen.Specifies whether trailing slashes "/" in the template should be ignored when matching candidate URIs.

PathSegmentVariableNames

Ruft eine Auflistung der Variablennamen ab, die innerhalb der Pfadsegmente in der Vorlage verwendet werden.Gets a collection of variable names used within path segments in the template.

QueryValueVariableNames

Ruft eine Auflistung der Variablennamen ab, die innerhalb der Abfragezeichenfolge in der Vorlage verwendet werden.Gets a collection of variable names used within the query string in the template.

Methoden

BindByName(Uri, IDictionary<String,String>)

Erstellt einen neuen URI aus der Vorlage und der Parameterauflistung.Creates a new URI from the template and the collection of parameters.

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

Erstellt einen neuen URI aus der Vorlage und der Parameterauflistung.Creates a new URI from the template and the collection of parameters.

BindByName(Uri, NameValueCollection)

Erstellt einen neuen URI aus der Vorlage und der Parameterauflistung.Creates a new URI from the template and the collection of parameters.

BindByName(Uri, NameValueCollection, Boolean)

Erstellt einen neuen URI aus der Vorlage und der Parameterauflistung.Creates a new URI from the template and the collection of parameters.

BindByPosition(Uri, String[])

Erstellt einen neuen URI aus der Vorlage und einem Array von Parameterwerten.Creates a new URI from the template and an array of parameter values.

Equals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.Determines whether the specified object is equal to the current object.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.Serves as the default hash function.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Geerbt von Object)
IsEquivalentTo(UriTemplate)

Gibt an, ob eine UriTemplate strukturell äquivalent zu einer anderen ist.Indicates whether a UriTemplate is structurally equivalent to another.

Match(Uri, Uri)

Versucht, einen Uri mit einer UriTemplate abzugleichen.Attempts to match a Uri to a UriTemplate.

MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolgendarstellung der UriTemplate-Instanz zurück.Returns a string representation of the UriTemplate instance.

Gilt für: