UriTemplate Classe

Définition

Classe qui représente un modèle URI (Uniform Resource Identifier).A class that represents a Uniform Resource Identifier (URI) template.

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.The following code demonstrates how to create a UriTemplate instance, and bind and match it to a candidate 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

Remarques

Un modèle URI vous permet de définir un jeu d'URI de structure similaire.A URI template allows you to define a set of structurally similar URIs. Les modèles sont composés de deux parties : un chemin d’accès et une requête.Templates are composed of two parts, a path and a query. Un chemin d’accès est constitué d’une série de segments délimités par une barre oblique (/).A path consists of a series of segments delimited by a slash (/). 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).Each segment can have a literal value, a variable value (written within curly braces [{ }], constrained to match the contents of exactly one segment), or a wildcard (written as an asterisk [*], which matches "the rest of the path"), which must appear at the end of the path. L'expression de requête peut être entièrement omise.The query expression can be omitted entirely. Si elle est présente, elle spécifie une série non triée de paires nom/valeur.If present, it specifies an unordered series of name/value pairs. Les éléments de l'expression de requête peuvent être des paires littérales (?x=2) ou des paires variables (?x={val}).Elements of the query expression can be either literal pairs (?x=2) or variable pairs (?x={val}). Les valeurs non couplées ne sont pas autorisées.Unpaired values are not permitted. Les exemples suivants présentent des chaînes de modèles valides :The following examples show valid template strings:

  • "météo/WA/Seattle""weather/WA/Seattle"

  • "météo/{état}/{ville}""weather/{state}/{city}"

  • "météo/*""weather/*"

  • "météo/{état}/{ville}?prévisions=aujourd'hui"weather/{state}/{city}?forecast=today

  • "météo/{état}/{ville}?prévisions={jour}"weather/{state}/{city}?forecast={day}

Les modèles URI précédents peuvent être utilisés pour organiser les bulletins météorologiques.The preceding URI templates might be used for organizing weather reports. Les segments figurant entre accolades sont des variables ; tous les autres éléments sont des littéraux.Segments enclosed in curly braces are variables, everything else is a literal. Vous pouvez convertir une instance UriTemplate en Uri en remplaçant les variables par des valeurs réelles.You can convert a UriTemplate instance into a Uri by replacing variables with actual values. 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".For example, taking the template "weather/{state}/{city}" and putting in values for the variables "{state}" and "{city}" gives you "weather/WA/Seattle". Pour un URI candidat donné, vous pouvez vérifier s'il correspond à un modèle URI donné en appelant Match(Uri, Uri).Given a candidate URI, you can test whether it matches a given URI template by calling 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[]).You can also use UriTemplate instances to create a Uri from a set of variable values by calling BindByName(Uri, NameValueCollection) or BindByPosition(Uri, String[]).

Constructeurs

UriTemplate(String)

Initialise une nouvelle instance de la classe UriTemplate avec la chaîne de modèle spécifiée.Initializes a new instance of the UriTemplate class with the specified template string.

UriTemplate(String, Boolean)

Initialise une nouvelle instance de la classe UriTemplate.Initializes a new instance of the UriTemplate class.

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

Initialise une nouvelle instance de la classe UriTemplate.Initializes a new instance of the UriTemplate class.

UriTemplate(String, IDictionary<String,String>)

Initialise une nouvelle instance de la classe UriTemplate.Initializes a new instance of the UriTemplate class.

Propriétés

Defaults

Obtient une collection de paires nom/valeur pour toutes les valeurs de paramètre par défaut.Gets a collection of name/value pairs for any default parameter values.

IgnoreTrailingSlash

Spécifie si les barres obliques « / » du modèle doivent être ignorées lors de la mise en correspondance des URI candidats.Specifies whether trailing slashes "/" in the template should be ignored when matching candidate URIs.

PathSegmentVariableNames

Obtient une collection de noms de variables utilisés dans les segments de chemin d’accès du modèle.Gets a collection of variable names used within path segments in the template.

QueryValueVariableNames

Obtient une collection de noms de variables utilisés dans la chaîne de requête du modèle.Gets a collection of variable names used within the query string in the template.

Méthodes

BindByName(Uri, IDictionary<String,String>)

Crée un URI à partir du modèle et de la collection de paramètres.Creates a new URI from the template and the collection of parameters.

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

Crée un URI à partir du modèle et de la collection de paramètres.Creates a new URI from the template and the collection of parameters.

BindByName(Uri, NameValueCollection)

Crée un URI à partir du modèle et de la collection de paramètres.Creates a new URI from the template and the collection of parameters.

BindByName(Uri, NameValueCollection, Boolean)

Crée un URI à partir du modèle et de la collection de paramètres.Creates a new URI from the template and the collection of parameters.

BindByPosition(Uri, String[])

Crée un URI à partir du modèle et d'un tableau de valeurs de paramètres.Creates a new URI from the template and an array of parameter values.

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.Determines whether the specified object is equal to the current object.

(Hérité de Object)
GetHashCode()

Sert de fonction de hachage par défaut.Serves as the default hash function.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

(Hérité de Object)
IsEquivalentTo(UriTemplate)

Indique si un UriTemplate possède une structure similaire à un autre.Indicates whether a UriTemplate is structurally equivalent to another.

Match(Uri, Uri)

Tente de faire correspondre un objet Uri et un objet UriTemplate.Attempts to match a Uri to a UriTemplate.

MemberwiseClone()

Crée une copie superficielle du Object actuel.Creates a shallow copy of the current Object.

(Hérité de Object)
ToString()

Obtient une représentation sous forme de chaîne de l'instance UriTemplate.Returns a string representation of the UriTemplate instance.

S’applique à