UriTemplate Classe

Definição

Uma classe que representa um modelo de Identificador Uniforme de Recursos (URI).

public ref class UriTemplate
public class UriTemplate
type UriTemplate = class
Public Class UriTemplate
Herança
UriTemplate

Exemplos

O código seguinte demonstra como criar uma UriTemplate instância, e associá-la e correspondê-la a um URI candidato.

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

Observações

Um modelo de URI permite-lhe definir um conjunto de URIs estruturalmente semelhantes. Os modelos são compostos por duas partes, um caminho e uma consulta. Um caminho consiste em uma série de segmentos delimitados por uma barra (/). Cada segmento pode ter um valor literal, um valor variável (escrito entre chaves [{ }], restrito para corresponder ao conteúdo de exatamente um segmento) ou um curinga (escrito como um asterisco [*], que corresponde ao "resto do caminho"), que deve aparecer no final do caminho. A expressão de consulta pode ser totalmente omitida. Se presente, especifica uma série não ordenada de pares nome/valor. Os elementos da expressão de consulta podem ser pares literais (?x=2) ou pares de variáveis (?x={val}). Não são permitidos valores não emparelhados. Os seguintes exemplos mostram cadeias de templates válidas:

  • "tempo/WA/Seattle"

  • "tempo/{estado}/{cidade}"

  • "tempo/*"

  • "tempo/{estado}/{cidade}?previsão=hoje

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

Os modelos URI anteriores podem ser usados para organizar relatórios meteorológicos. Os segmentos encerrados em órtees enrolados são variáveis, tudo o resto é literal. Pode converter uma UriTemplate instância em uma Uri substituindo variáveis por valores reais. Por exemplo, pegar no modelo "weather/{state}/{city}" e inserir valores para as variáveis "{state}" e "{city}" dá-te "weather/WA/Seattle". Dado um URI candidato, pode testar se corresponde a um dado modelo de URI chamando Match(Uri, Uri). Também pode usar UriTemplate instâncias para criar a Uri partir de um conjunto de valores de variáveis chamando BindByName(Uri, NameValueCollection) ou BindByPosition(Uri, String[]).

Construtores

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

Inicializa uma nova instância da UriTemplate classe.

UriTemplate(String, Boolean)

Inicializa uma nova instância da UriTemplate classe.

UriTemplate(String, IDictionary<String,String>)

Inicializa uma nova instância da UriTemplate classe.

UriTemplate(String)

Inicializa uma nova instância da UriTemplate classe com a string template especificada.

Propriedades

Name Description
Defaults

Obtém uma coleção de pares nome/valor para quaisquer valores padrão de parâmetro.

IgnoreTrailingSlash

Especifica se barras finais "/" no template devem ser ignoradas ao corresponder URIs candidatos.

PathSegmentVariableNames

Obtém uma coleção de nomes de variáveis usados dentro dos segmentos de caminho no modelo.

QueryValueVariableNames

Obtém uma coleção de nomes de variáveis usados dentro da string de consulta no modelo.

Métodos

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

Cria um novo URI a partir do template e da coleção de parâmetros.

BindByName(Uri, IDictionary<String,String>)

Cria um novo URI a partir do template e da coleção de parâmetros.

BindByName(Uri, NameValueCollection, Boolean)

Cria um novo URI a partir do template e da coleção de parâmetros.

BindByName(Uri, NameValueCollection)

Cria um novo URI a partir do template e da coleção de parâmetros.

BindByPosition(Uri, String[])

Cria um novo URI a partir do template e um array de valores de parâmetros.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
IsEquivalentTo(UriTemplate)

Indica se um UriTemplate é estruturalmente equivalente a outro.

Match(Uri, Uri)

Tenta associar a Uri a a um UriTemplate.

MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
ToString()

Devolve uma representação de string da UriTemplate instância.

Aplica-se a