UriTemplate Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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. |