UriTemplate Klas

Definitie

Een klasse die een URI-sjabloon (Uniform Resource Identifier) vertegenwoordigt.

public ref class UriTemplate
public class UriTemplate
type UriTemplate = class
Public Class UriTemplate
Overname
UriTemplate

Voorbeelden

De volgende code laat zien hoe u een UriTemplate exemplaar maakt en koppelt en koppelt aan een kandidaat-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

Opmerkingen

Met een URI-sjabloon kunt u een set structureel vergelijkbare URI's definiëren. Sjablonen bestaan uit twee delen, een pad en een query. Een pad bestaat uit een reeks segmenten gescheiden door een slash (/). Elk segment kan een letterlijke waarde hebben, een variabele waarde (geschreven binnen accolades [{ }], beperkt tot de inhoud van precies één segment) of een jokerteken (geschreven als een sterretje [*], dat overeenkomt met de rest van het pad), die moet worden weergegeven aan het einde van het pad. De query-expressie kan volledig worden weggelaten. Als deze aanwezig is, wordt een niet-geordende reeks naam-/waardeparen opgegeven. Elementen van de query-expressie kunnen letterlijke paren (?x=2) of variabele paren (?x={val}) zijn. Ongekoppelde waarden zijn niet toegestaan. In de volgende voorbeelden worden geldige sjabloontekenreeksen weergegeven:

  • "weer/WA/Seattle"

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

  • "weer/*"

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

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

De voorgaande URI-sjablonen kunnen worden gebruikt voor het ordenen van weerrapporten. Segmenten tussen accolades zijn variabelen, alles anders is een letterlijke. U kunt een UriTemplate exemplaar converteren naar een Uri exemplaar door variabelen te vervangen door werkelijke waarden. Als u bijvoorbeeld de sjabloon 'weather/{state}/{city}' gebruikt en waarden opgeeft voor de variabelen {state}en {city}, krijgt u 'weather/WA/Seattle'. Met een kandidaat-URI kunt u testen of deze overeenkomt met een bepaalde URI-sjabloon door aan te roepen Match(Uri, Uri). U kunt ook exemplaren gebruiken UriTemplate om een Uri van een set variabele waarden te maken door aan te roepen BindByName(Uri, NameValueCollection) of BindByPosition(Uri, String[]).

Constructors

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

Initialiseert een nieuw exemplaar van de UriTemplate klasse.

UriTemplate(String, Boolean)

Initialiseert een nieuw exemplaar van de UriTemplate klasse.

UriTemplate(String, IDictionary<String,String>)

Initialiseert een nieuw exemplaar van de UriTemplate klasse.

UriTemplate(String)

Initialiseert een nieuw exemplaar van de UriTemplate klasse met de opgegeven sjabloontekenreeks.

Eigenschappen

Name Description
Defaults

Hiermee haalt u een verzameling naam-/waardeparen op voor alle standaardparameterwaarden.

IgnoreTrailingSlash

Hiermee geeft u op of afsluitende slashes '/' in de sjabloon moeten worden genegeerd bij overeenkomende kandidaat-URI's.

PathSegmentVariableNames

Hiermee haalt u een verzameling variabelenamen op die worden gebruikt in padsegmenten in de sjabloon.

QueryValueVariableNames

Hiermee haalt u een verzameling variabelenamen op die worden gebruikt in de querytekenreeks in de sjabloon.

Methoden

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

Hiermee maakt u een nieuwe URI op basis van de sjabloon en de verzameling parameters.

BindByName(Uri, IDictionary<String,String>)

Hiermee maakt u een nieuwe URI op basis van de sjabloon en de verzameling parameters.

BindByName(Uri, NameValueCollection, Boolean)

Hiermee maakt u een nieuwe URI op basis van de sjabloon en de verzameling parameters.

BindByName(Uri, NameValueCollection)

Hiermee maakt u een nieuwe URI op basis van de sjabloon en de verzameling parameters.

BindByPosition(Uri, String[])

Hiermee maakt u een nieuwe URI op basis van de sjabloon en een matrix met parameterwaarden.

Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
IsEquivalentTo(UriTemplate)

Geeft aan of een UriTemplate structureel equivalent is aan een andere.

Match(Uri, Uri)

Pogingen om een Uri overeenkomst te vinden met een UriTemplate.

MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
ToString()

Retourneert een tekenreeksweergave van het UriTemplate exemplaar.

Van toepassing op