UriTemplate Osztály

Definíció

Egy egységes erőforrás-azonosító (URI) sablont képviselő osztály.

public ref class UriTemplate
public class UriTemplate
type UriTemplate = class
Public Class UriTemplate
Öröklődés
UriTemplate

Példák

Az alábbi kód bemutatja, hogyan hozhat létre egy példányt UriTemplate , és hogyan kötheti össze és illesztheti egy jelölt URI-val.

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

Megjegyzések

Az URI-sablonokkal szerkezetileg hasonló URI-k definiálhatók. A sablonok két részből, egy elérési útból és egy lekérdezésből állnak. Az elérési utak perjellel (/) tagolt szegmensekből állnak. Minden szegmens rendelkezhet konstans értékkel, változó értékkel (kapcsos zárójelek között írva [{ }], amely pontosan egy szegmens tartalmának felel meg), vagy egy helyettesítő karakterrel (csillagként [*], amely az "elérési út többi részével" egyezik), amelynek az elérési út végén kell megjelennie. A lekérdezési kifejezés teljes egészében kihagyható. Ha van ilyen, a név/érték párok rendezetlen sorozatát adja meg. A lekérdezési kifejezés elemei lehetnek literális párok (?x=2) vagy változó párok (?x={val}). A párosítatlan értékek nem engedélyezettek. Az alábbi példák érvényes sablonsztringeket mutatnak be:

  • "weather/WA/Seattle"

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

  • "időjárás/*"

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

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

Az előző URI-sablonokat használhatja az időjárási jelentések rendszerezéséhez. A kapcsos zárójelek közé zárt szegmensek változók, minden más egy literál. A példányokat UriTemplate úgy alakíthatja át egy példánysá Uri , hogy a változókat tényleges értékekkel cseréli le. Ha például a "weather/{state}/{city}" sablont veszi fel, és a(z) "{state}" és a "{city}" változó értékeit adja meg, az "weather/WA/Seattle" értéket adja meg. A jelölt URI-nak megfelelő URI-t meghívva Match(Uri, Uri)tesztelheti, hogy egyezik-e egy adott URI-sablonnal. A példányok használatával UriTemplate változóértékek készletéből is létrehozható Uri hívással BindByName(Uri, NameValueCollection) vagy BindByPosition(Uri, String[]).

Konstruktorok

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

Inicializálja a UriTemplate osztály új példányát.

UriTemplate(String, Boolean)

Inicializálja a UriTemplate osztály új példányát.

UriTemplate(String, IDictionary<String,String>)

Inicializálja a UriTemplate osztály új példányát.

UriTemplate(String)

Inicializálja az osztály új példányát UriTemplate a megadott sablonsztringgel.

Tulajdonságok

Name Description
Defaults

Lekéri a név-érték párok gyűjteményét az alapértelmezett paraméterértékekhez.

IgnoreTrailingSlash

Megadja, hogy a sablonban lévő "/" záró perjeleket figyelmen kívül kell-e hagyni a jelölt URI-k egyeztetésekor.

PathSegmentVariableNames

Lekéri a sablon elérésiút-szegmenseiben használt változónevek gyűjteményét.

QueryValueVariableNames

Lekéri a sablon lekérdezési sztringjében használt változónevek gyűjteményét.

Metódusok

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

Létrehoz egy új URI-t a sablonból és a paraméterek gyűjteményéből.

BindByName(Uri, IDictionary<String,String>)

Létrehoz egy új URI-t a sablonból és a paraméterek gyűjteményéből.

BindByName(Uri, NameValueCollection, Boolean)

Létrehoz egy új URI-t a sablonból és a paraméterek gyűjteményéből.

BindByName(Uri, NameValueCollection)

Létrehoz egy új URI-t a sablonból és a paraméterek gyűjteményéből.

BindByPosition(Uri, String[])

Létrehoz egy új URI-t a sablonból és egy paraméterértékekből álló tömböt.

Equals(Object)

Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal.

(Öröklődés forrása Object)
GetHashCode()

Ez az alapértelmezett kivonatoló függvény.

(Öröklődés forrása Object)
GetType()

Lekéri az Type aktuális példányt.

(Öröklődés forrása Object)
IsEquivalentTo(UriTemplate)

Azt jelzi, hogy egy UriTemplate szerkezetileg egyenértékű-e egy másikval.

Match(Uri, Uri)

Kísérlet az egyhez Uri való egyeztetésre UriTemplate.

MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
ToString()

A példány sztring-ábrázolását UriTemplate adja vissza.

A következőre érvényes: