UriTemplate Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Classe qui représente un modèle URI (Uniform Resource Identifier).
public ref class UriTemplate
public class UriTemplate
type UriTemplate = class
Public Class UriTemplate
- Héritage
-
UriTemplate
Exemples
Le code suivant montre comment créer une instance UriTemplate, la lier et la faire correspondre à un URI candidat.
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
Remarques
Un modèle URI vous permet de définir un jeu d'URI de structure similaire. Les modèles sont composés de deux parties : un chemin d’accès et une requête. Un chemin d’accès est constitué d’une série de segments délimités par une barre oblique (/). Chaque segment peut avoir une valeur littérale, une valeur variable (écrite entre accolades [{}], avec obligation de correspondre au contenu exact d'un segment) ou un caractère générique (un astérisque [*] qui correspond au reste du chemin d'accès). L'expression de requête peut être entièrement omise. Si elle est présente, elle spécifie une série non triée de paires nom/valeur. Les éléments de l'expression de requête peuvent être des paires littérales (?x=2) ou des paires variables (?x={val}). Les valeurs non couplées ne sont pas autorisées. Les exemples suivants présentent des chaînes de modèles valides :
"météo/WA/Seattle"
"météo/{état}/{ville}"
"météo/*"
"météo/{état}/{ville}?prévisions=aujourd'hui
"météo/{état}/{ville}?prévisions={jour}
Les modèles URI précédents peuvent être utilisés pour organiser les bulletins météorologiques. Les segments figurant entre accolades sont des variables ; tous les autres éléments sont des littéraux. Vous pouvez convertir une instance UriTemplate en Uri en remplaçant les variables par des valeurs réelles. Par exemple, si vous considérez le modèle "météo/{état}/{ville}" et que vous indiquez des valeurs pour les variables "{état}" et "{ville}", vous obtiendrez "météo/WA/Seattle". Pour un URI candidat donné, vous pouvez vérifier s'il correspond à un modèle URI donné en appelant Match(Uri, Uri). Vous pouvez également utiliser des instances UriTemplate pour créer un objet Uri à partir d'un jeu de valeurs variables en appelant BindByName(Uri, NameValueCollection) ou BindByPosition(Uri, String[]).
Constructeurs
UriTemplate(String) |
Initialise une nouvelle instance de la classe UriTemplate avec la chaîne de modèle spécifiée. |
UriTemplate(String, Boolean) |
Initialise une nouvelle instance de la classe UriTemplate. |
UriTemplate(String, Boolean, IDictionary<String,String>) |
Initialise une nouvelle instance de la classe UriTemplate. |
UriTemplate(String, IDictionary<String,String>) |
Initialise une nouvelle instance de la classe UriTemplate. |
Propriétés
Defaults |
Obtient une collection de paires nom/valeur pour toutes les valeurs de paramètre par défaut. |
IgnoreTrailingSlash |
Spécifie si les barres obliques « / » du modèle doivent être ignorées lors de la mise en correspondance des URI candidats. |
PathSegmentVariableNames |
Obtient une collection de noms de variables utilisés dans les segments de chemin d’accès du modèle. |
QueryValueVariableNames |
Obtient une collection de noms de variables utilisés dans la chaîne de requête du modèle. |
Méthodes
BindByName(Uri, IDictionary<String,String>) |
Crée un URI à partir du modèle et de la collection de paramètres. |
BindByName(Uri, IDictionary<String,String>, Boolean) |
Crée un URI à partir du modèle et de la collection de paramètres. |
BindByName(Uri, NameValueCollection) |
Crée un URI à partir du modèle et de la collection de paramètres. |
BindByName(Uri, NameValueCollection, Boolean) |
Crée un URI à partir du modèle et de la collection de paramètres. |
BindByPosition(Uri, String[]) |
Crée un URI à partir du modèle et d'un tableau de valeurs de paramètres. |
Equals(Object) |
Détermine si l'objet spécifié est égal à l'objet actuel. (Hérité de Object) |
GetHashCode() |
Fait office de fonction de hachage par défaut. (Hérité de Object) |
GetType() |
Obtient le Type de l'instance actuelle. (Hérité de Object) |
IsEquivalentTo(UriTemplate) |
Indique si un UriTemplate possède une structure similaire à un autre. |
Match(Uri, Uri) |
Tente de faire correspondre un objet Uri et un objet UriTemplate. |
MemberwiseClone() |
Crée une copie superficielle du Object actuel. (Hérité de Object) |
ToString() |
Obtient une représentation sous forme de chaîne de l'instance UriTemplate. |