War diese Seite hilfreich?
Ihr Feedback ist uns wichtig. Teilen Sie uns Ihre Meinung mit.
Weiteres Feedback?
1500 verbleibende Zeichen
Exportieren (0) Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

UriTemplate-Klasse

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

Namespace:  System
Assembly:  System.ServiceModel (in System.ServiceModel.dll)

public class UriTemplate

Der UriTemplate-Typ macht die folgenden Member verfügbar.

  NameBeschreibung
Öffentliche MethodeUriTemplate(String)Initialisiert eine neue Instanz der UriTemplate-Klasse mit der angegebenen Vorlagenzeichenfolge.
Öffentliche MethodeUriTemplate(String, Boolean)Initialisiert eine neue Instanz der UriTemplate-Klasse.
Öffentliche MethodeUriTemplate(String, IDictionary<String, String>)Initialisiert eine neue Instanz der UriTemplate-Klasse.
Öffentliche MethodeUriTemplate(String, Boolean, IDictionary<String, String>)Initialisiert eine neue Instanz der UriTemplate-Klasse.
Zum Seitenanfang

  NameBeschreibung
Öffentliche EigenschaftDefaultsRuft eine Auflistung von Name/Wert-Paaren für sämtliche Standardparameterwerte ab.
Öffentliche EigenschaftIgnoreTrailingSlashGibt an, ob nachstehende Schrägstriche "/" in der Vorlage beim Vergleich mit möglichen URIs ignoriert werden sollen.
Öffentliche EigenschaftPathSegmentVariableNamesRuft eine Auflistung der Variablennamen ab, die innerhalb der Pfadsegmente in der Vorlage verwendet werden.
Öffentliche EigenschaftQueryValueVariableNamesRuft eine Auflistung der Variablennamen ab, die innerhalb der Abfragezeichenfolge in der Vorlage verwendet werden.
Zum Seitenanfang

  NameBeschreibung
Öffentliche MethodeBindByName(Uri, IDictionary<String, String>)Erstellt einen neuen URI aus der Vorlage und der Parameterauflistung.
Öffentliche MethodeBindByName(Uri, NameValueCollection)Erstellt einen neuen URI aus der Vorlage und der Parameterauflistung.
Öffentliche MethodeBindByName(Uri, IDictionary<String, String>, Boolean)Erstellt einen neuen URI aus der Vorlage und der Parameterauflistung.
Öffentliche MethodeBindByName(Uri, NameValueCollection, Boolean)Erstellt einen neuen URI aus der Vorlage und der Parameterauflistung.
Öffentliche MethodeBindByPositionErstellt einen neuen URI aus der Vorlage und einem Array von Parameterwerten.
Öffentliche MethodeEquals(Object)Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist. (Von Object geerbt.)
Geschützte MethodeFinalize Gibt einem Objekt Gelegenheit, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der Garbage Collection freigegeben wird. (Von Object geerbt.)
Öffentliche MethodeGetHashCodeFungiert als die Standardhashfunktion. (Von Object geerbt.)
Öffentliche MethodeGetTypeRuft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Öffentliche MethodeIsEquivalentToGibt an, ob eine UriTemplate strukturell äquivalent zu einer anderen ist.
Öffentliche MethodeMatchVersucht, einen URI mit einer UriTemplate abzugleichen.
Geschützte MethodeMemberwiseCloneErstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.)
Öffentliche MethodeToStringGibt eine Zeichenfolgendarstellung der UriTemplate-Instanz zurück. (Überschreibt Object.ToString().)
Zum Seitenanfang

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.

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]);
    }
}


.NET Framework

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2015 Microsoft