Partager via


UriTemplate Classe

Définition

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.

S’applique à