UriTemplate Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Uma classe que representa um modelo de URI (Uniform Resource Identifier).
public ref class UriTemplate
public class UriTemplate
type UriTemplate = class
Public Class UriTemplate
- Herança
-
UriTemplate
Exemplos
O código a seguir demonstra como criar uma UriTemplate instância e associá-la e combiná-la com 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
Comentários
Um modelo de URI permite 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 dentro de 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, ele 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}). Valores não pagos não são permitidos. Os exemplos a seguir mostram cadeias de caracteres de modelo válidas:
"weather/WA/Seattle"
"weather/{state}/{city}"
"weather/*"
"weather/{state}/{city}?forecast=today
"weather/{state}/{city}?forecast={day}
Os modelos de URI anteriores podem ser usados para organizar relatórios meteorológicos. Segmentos entre chaves são variáveis, todo o resto é literal. Você pode converter uma UriTemplate instância em uma Uri substituindo variáveis por valores reais. Por exemplo, usar o modelo "weather/{state}/{city}" e colocar valores para as variáveis "{state}" e "{city}" fornece "clima/WA/Seattle". Dado um URI candidato, você pode testar se ele corresponde a um determinado modelo de URI chamando Match(Uri, Uri). Você também pode usar UriTemplate instâncias para criar um Uri conjunto de valores variáveis chamando BindByName(Uri, NameValueCollection) ou BindByPosition(Uri, String[]).
Construtores
UriTemplate(String) |
Inicializa uma nova instância da classe UriTemplate com a cadeia de caracteres de modelo especificada. |
UriTemplate(String, Boolean) |
Inicializa uma nova instância da classe UriTemplate. |
UriTemplate(String, Boolean, IDictionary<String,String>) |
Inicializa uma nova instância da classe UriTemplate. |
UriTemplate(String, IDictionary<String,String>) |
Inicializa uma nova instância da classe UriTemplate. |
Propriedades
Defaults |
Obtém uma coleção de pares nome/valor para quaisquer valores de parâmetro padrão. |
IgnoreTrailingSlash |
Especifica que as barras "/" à direita no modelo devem ser ignoradas durante a correspondência com os URIs candidatos. |
PathSegmentVariableNames |
Obtém uma coleção de nomes variáveis usados em segmentos de linha no modelo. |
QueryValueVariableNames |
Obtém uma coleção de nomes variáveis usados na cadeia de caracteres de consulta no modelo. |
Métodos
BindByName(Uri, IDictionary<String,String>) |
Cria um novo URI de modelo e a coleção de parâmetros. |
BindByName(Uri, IDictionary<String,String>, Boolean) |
Cria um novo URI de modelo e a coleção de parâmetros. |
BindByName(Uri, NameValueCollection) |
Cria um novo URI de modelo e a coleção de parâmetros. |
BindByName(Uri, NameValueCollection, Boolean) |
Cria um novo URI de modelo e a coleção de parâmetros. |
BindByPosition(Uri, String[]) |
Cria um novo URI com base no modelo e uma matriz de valores de parâmetro. |
Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
GetHashCode() |
Serve como a função de hash padrão. (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 corresponder um Uri a um UriTemplate. |
MemberwiseClone() |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
ToString() |
Retorna uma representação de cadeia de caracteres da instância UriTemplate. |