UriTemplate Třída

Definice

Třída, která představuje šablonu URI (Uniform Resource Identifier).

public ref class UriTemplate
public class UriTemplate
type UriTemplate = class
Public Class UriTemplate
Dědičnost
UriTemplate

Příklady

Následující kód ukazuje, jak vytvořit UriTemplate instanci a vytvořit vazbu a shodovat ji s kandidátským identifikátorem 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

Poznámky

Šablona identifikátoru URI umožňuje definovat sadu strukturálně podobných identifikátorů URI. Šablony se skládají ze dvou částí, cesty a dotazu. Cesta se skládá z řady segmentů oddělených lomítkem (/). Každý segment může mít hodnotu literálu, proměnnou hodnotu (zapsanou v složených závorkách [{ }], omezená tak, aby odpovídala obsahu přesně jednoho segmentu) nebo zástupný znak (napsaný jako hvězdička [*], který odpovídá "zbytku cesty"), který se musí objevit na konci cesty. Výraz dotazu je možné zcela vynechat. Pokud je k dispozici, určuje neuspořádanou řadu párů názvů a hodnot. Prvky výrazu dotazu můžou být buď dvojice literálů (?x=2), nebo páry proměnných (?x={val}). Nezaplacené hodnoty nejsou povoleny. Následující příklady ukazují platné řetězce šablon:

  • "weather/WA/Seattle"

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

  • "počasí/*"

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

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

Předchozí šablony identifikátoru URI se můžou použít pro uspořádání sestav počasí. Segmenty uzavřené ve složených závorkách jsou proměnné, všechno ostatní je literál. Instanci můžete převést UriTemplate na Uri nahrazení proměnných skutečnými hodnotami. Například když vezmete šablonu "weather/{state}/{city}" a vložíte hodnoty proměnných {state} a {city}, získáte "weather/WA/Seattle". Vzhledem k identifikátoru URI kandidáta můžete otestovat, jestli odpovídá dané šabloně identifikátoru URI voláním Match(Uri, Uri). Instance můžete také použít UriTemplate k vytvoření Uri ze sady proměnných hodnot voláním BindByName(Uri, NameValueCollection) nebo BindByPosition(Uri, String[]).

Konstruktory

UriTemplate(String)

Inicializuje novou instanci UriTemplate třídy se zadaným řetězcem šablony.

UriTemplate(String, Boolean)

Inicializuje novou instanci UriTemplate třídy.

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

Inicializuje novou instanci UriTemplate třídy.

UriTemplate(String, IDictionary<String,String>)

Inicializuje novou instanci UriTemplate třídy.

Vlastnosti

Defaults

Získá kolekci dvojic name/value pro všechny výchozí hodnoty parametrů.

IgnoreTrailingSlash

Určuje, jestli se koncové lomítko "/" v šabloně má ignorovat při porovnávání kandidátských identifikátorů URI.

PathSegmentVariableNames

Získá kolekci názvů proměnných používaných v rámci segmentů cesty v šabloně.

QueryValueVariableNames

Získá kolekci názvů proměnných použitých v řetězci dotazu v šabloně.

Metody

BindByName(Uri, IDictionary<String,String>)

Vytvoří nový identifikátor URI ze šablony a kolekce parametrů.

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

Vytvoří nový identifikátor URI ze šablony a kolekce parametrů.

BindByName(Uri, NameValueCollection)

Vytvoří nový identifikátor URI ze šablony a kolekce parametrů.

BindByName(Uri, NameValueCollection, Boolean)

Vytvoří nový identifikátor URI ze šablony a kolekce parametrů.

BindByPosition(Uri, String[])

Vytvoří nový identifikátor URI ze šablony a pole hodnot parametrů.

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetType()

Type Získá aktuální instanci.

(Zděděno od Object)
IsEquivalentTo(UriTemplate)

Určuje, zda UriTemplate je strukturálně ekvivalentní jinému.

Match(Uri, Uri)

Pokusí se shodovat s znakem Uri UriTemplate.

MemberwiseClone()

Vytvoří použádnou kopii aktuálního souboru Object.

(Zděděno od Object)
ToString()

Vrátí řetězcovou reprezentaci UriTemplate instance.

Platí pro