UriTemplate Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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. |