UriTemplate UriTemplate UriTemplate UriTemplate Class

Definice

Třída, která představuje šablonu identifikátoru 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
Dědičnost
UriTemplateUriTemplateUriTemplateUriTemplate

Příklady

Následující kód ukazuje, jak vytvořit UriTemplate instanci a vytvořit její vazby a porovnat ji s kandidátem identifikátorem URI.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

Poznámky

Šablona identifikátoru URI umožňuje definovat sadu strukturně podobných identifikátorů URI.A URI template allows you to define a set of structurally similar URIs. Šablony se skládají ze dvou částí, cesty a dotazu.Templates are composed of two parts, a path and a query. Cesta se skládá z řady segmentů oddělených lomítkem (/).A path consists of a series of segments delimited by a slash (/). Každý segment může mít literálovou hodnotu, hodnotu proměnné (napsanou ve složených závorkách [{}], která je omezená tak, aby odpovídala obsahu přesně jednoho segmentu), nebo zástupný znak (napsaný jako hvězdička [*], který odpovídá "zbytek cesty"), který se musí vyskytovat na konci cesty. .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. Výraz dotazu může být zcela vynechán.The query expression can be omitted entirely. Je-li k dispozici, určuje neuspořádanou řadu párů název/hodnota.If present, it specifies an unordered series of name/value pairs. Prvky výrazu dotazu mohou být buď páry literálů (? x = 2), nebo páry proměnných (? x = {Val}).Elements of the query expression can be either literal pairs (?x=2) or variable pairs (?x={val}). Nespárované hodnoty nejsou povolené.Unpaired values are not permitted. Následující příklady znázorňují platné řetězce šablon:The following examples show valid template strings:

  • "počasí/WA/Seattle""weather/WA/Seattle"

  • "počasí/{State}/{City}""weather/{state}/{city}"

  • "počasí/*""weather/*"

  • počasí/{State}/{City}? předpověď = Today"weather/{state}/{city}?forecast=today

  • počasí/{State}/{City}? předpověď = {Day}"weather/{state}/{city}?forecast={day}

Předchozí šablony identifikátoru URI lze použít k uspořádání sestav počasí.The preceding URI templates might be used for organizing weather reports. Segmenty uzavřené ve složených závorkách jsou proměnné, všechno ostatní je literál.Segments enclosed in curly braces are variables, everything else is a literal. UriTemplate Instanci můžete převést na a Uri nahrazením proměnných skutečnými hodnotami.You can convert a UriTemplate instance into a Uri by replacing variables with actual values. Například pořizováním šablony "počasí/{State}/{City}" a vložením hodnot pro proměnné "{State}" a "{City}" získáte "počasí/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". S ohledem na identifikátor URI kandidáta můžete testovat, zda se shoduje se zadaným šablonou Match(Uri, Uri)identifikátoru URI voláním.Given a candidate URI, you can test whether it matches a given URI template by calling Match(Uri, Uri). Instance můžete také použít UriTemplate k Uri vytvoření ze sady proměnných hodnot voláním BindByName(Uri, NameValueCollection) nebo 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[]).

Konstruktory

UriTemplate(String) UriTemplate(String) UriTemplate(String) UriTemplate(String)

Inicializuje novou instanci UriTemplate třídy se zadaným řetězcem šablony.Initializes a new instance of the UriTemplate class with the specified template string.

UriTemplate(String, Boolean) UriTemplate(String, Boolean) UriTemplate(String, Boolean) UriTemplate(String, Boolean)

Inicializuje novou instanci třídy UriTemplate třídy.Initializes a new instance of the UriTemplate class.

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

Inicializuje novou instanci třídy UriTemplate třídy.Initializes a new instance of the UriTemplate class.

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

Inicializuje novou instanci třídy UriTemplate třídy.Initializes a new instance of the UriTemplate class.

Vlastnosti

Defaults Defaults Defaults Defaults

Získá kolekci párů název/hodnota pro všechny výchozí hodnoty parametrů.Gets a collection of name/value pairs for any default parameter values.

IgnoreTrailingSlash IgnoreTrailingSlash IgnoreTrailingSlash IgnoreTrailingSlash

Určuje, zda mají být koncová lomítka "/" v šabloně ignorována, pokud se shodují kandidáty identifikátorů URI.Specifies whether trailing slashes "/" in the template should be ignored when matching candidate URIs.

PathSegmentVariableNames PathSegmentVariableNames PathSegmentVariableNames PathSegmentVariableNames

Získá kolekci názvů proměnných používaných v rámci segmentů cesty v šabloně.Gets a collection of variable names used within path segments in the template.

QueryValueVariableNames QueryValueVariableNames QueryValueVariableNames QueryValueVariableNames

Získá kolekci názvů proměnných použitou v řetězci dotazu v šabloně.Gets a collection of variable names used within the query string in the template.

Metody

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

Vytvoří nový identifikátor URI ze šablony a kolekce parametrů.Creates a new URI from the template and the collection of parameters.

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

Vytvoří nový identifikátor URI ze šablony a kolekce parametrů.Creates a new URI from the template and the collection of parameters.

BindByName(Uri, NameValueCollection) BindByName(Uri, NameValueCollection) BindByName(Uri, NameValueCollection) BindByName(Uri, NameValueCollection)

Vytvoří nový identifikátor URI ze šablony a kolekce parametrů.Creates a new URI from the template and the collection of parameters.

BindByName(Uri, NameValueCollection, Boolean) BindByName(Uri, NameValueCollection, Boolean) BindByName(Uri, NameValueCollection, Boolean) BindByName(Uri, NameValueCollection, Boolean)

Vytvoří nový identifikátor URI ze šablony a kolekce parametrů.Creates a new URI from the template and the collection of parameters.

BindByPosition(Uri, String[]) BindByPosition(Uri, String[]) BindByPosition(Uri, String[]) BindByPosition(Uri, String[])

Vytvoří nový identifikátor URI ze šablony a pole hodnot parametrů.Creates a new URI from the template and an array of parameter values.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Určuje, zda se zadaný objekt rovná aktuálnímu objektu.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Slouží jako výchozí funkce hash.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Získá Type aktuální instance.Gets the Type of the current instance.

(Inherited from Object)
IsEquivalentTo(UriTemplate) IsEquivalentTo(UriTemplate) IsEquivalentTo(UriTemplate) IsEquivalentTo(UriTemplate)

Označuje, zda UriTemplate je objekt strukturně ekvivalentní jinému.Indicates whether a UriTemplate is structurally equivalent to another.

Match(Uri, Uri) Match(Uri, Uri) Match(Uri, Uri) Match(Uri, Uri)

Pokusí se porovnat Uri UriTemplates.Attempts to match a Uri to a UriTemplate.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Vytvoří Mělkou kopii aktuální Object.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Vrátí řetězcovou reprezentaci UriTemplate instance.Returns a string representation of the UriTemplate instance.

Platí pro