UriTemplate Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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. |