UriTemplate Klasa

Definicja

Klasa, która reprezentuje szablon Uniform Resource Identifier (URI).A class that represents a Uniform Resource Identifier (URI) template.

public ref class UriTemplate
public class UriTemplate
type UriTemplate = class
Public Class UriTemplate
Dziedziczenie
UriTemplate

Przykłady

Poniższy kod pokazuje, jak utworzyć wystąpienie UriTemplate, a następnie powiązać i dopasować go do identyfikatora URI kandydata.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

Uwagi

Szablon identyfikatora URI umożliwia zdefiniowanie zestawu podobnych identyfikatorów URI.A URI template allows you to define a set of structurally similar URIs. Szablony składają się z dwóch części, ścieżki i zapytania.Templates are composed of two parts, a path and a query. Ścieżka składa się z serii segmentów rozdzielonych ukośnikiem (/).A path consists of a series of segments delimited by a slash (/). Każdy segment może mieć wartość literału, wartość zmiennej (zapisaną w nawiasach klamrowych [{}], ograniczona do zawartości dokładnie jednego segmentu) lub symbol wieloznaczny (zapisany jako gwiazdka [*], który pasuje do "reszty ścieżki"), który musi występować na końcu ścieżki .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. Wyrażenie zapytania można całkowicie pominąć.The query expression can be omitted entirely. Jeśli jest obecny, określa nieuporządkowaną serię par nazwa/wartość.If present, it specifies an unordered series of name/value pairs. Elementy wyrażenia zapytania mogą być parami literałów (? x = 2) lub par zmiennych (? x = {Val}).Elements of the query expression can be either literal pairs (?x=2) or variable pairs (?x={val}). Niesparowane wartości są niedozwolone.Unpaired values are not permitted. Następujące przykłady pokazują prawidłowe ciągi szablonu:The following examples show valid template strings:

  • "Pogoda/WA/Seattle""weather/WA/Seattle"

  • "Pogoda/{State}/{City}""weather/{state}/{city}"

  • "Pogoda/*""weather/*"

  • "Pogoda/{State}/{City}? Prognoza = dzisiaj"weather/{state}/{city}?forecast=today

  • "Pogoda/{State}/{City}? Prognoza = {Day}"weather/{state}/{city}?forecast={day}

Powyższe szablony identyfikatorów URI mogą służyć do organizowania raportów o pogodzie.The preceding URI templates might be used for organizing weather reports. Segmenty ujęte w nawiasy klamrowe są zmiennymi, wszystko inne jest literałem.Segments enclosed in curly braces are variables, everything else is a literal. Można przekonwertować wystąpienie UriTemplate na Uri, zastępując zmienne wartościami rzeczywistymi.You can convert a UriTemplate instance into a Uri by replacing variables with actual values. Na przykład wykonanie szablonu "Pogoda/{State}/{City}" i umieszczenie wartości dla zmiennych "{State}" i "{City}" daje Ci "Pogoda/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". Za pomocą identyfikatora URI kandydata można sprawdzić, czy jest on zgodny z danym szablonem identyfikatora URI, wywołując Match(Uri, Uri).Given a candidate URI, you can test whether it matches a given URI template by calling Match(Uri, Uri). Można również użyć wystąpień UriTemplate, aby utworzyć Uri na podstawie zestawu wartości zmiennych przez wywołanie BindByName(Uri, NameValueCollection) lub 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)

Inicjuje nowe wystąpienie klasy UriTemplate z określonym ciągiem szablonu.Initializes a new instance of the UriTemplate class with the specified template string.

UriTemplate(String, Boolean)

Inicjuje nowe wystąpienie klasy UriTemplate klasy.Initializes a new instance of the UriTemplate class.

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

Inicjuje nowe wystąpienie klasy UriTemplate klasy.Initializes a new instance of the UriTemplate class.

UriTemplate(String, IDictionary<String,String>)

Inicjuje nowe wystąpienie klasy UriTemplate klasy.Initializes a new instance of the UriTemplate class.

Właściwości

Defaults

Pobiera kolekcję par nazwa/wartość dla dowolnych domyślnych wartości parametrów.Gets a collection of name/value pairs for any default parameter values.

IgnoreTrailingSlash

Określa, czy kończyć się ukośniki "/" w szablonie podczas dopasowywania identyfikatorów URI kandydujących.Specifies whether trailing slashes "/" in the template should be ignored when matching candidate URIs.

PathSegmentVariableNames

Pobiera kolekcję nazw zmiennych używanych w segmentach ścieżki w szablonie.Gets a collection of variable names used within path segments in the template.

QueryValueVariableNames

Pobiera kolekcję nazw zmiennych używanych w ciągu zapytania w szablonie.Gets a collection of variable names used within the query string in the template.

Metody

BindByName(Uri, IDictionary<String,String>)

Tworzy nowy identyfikator URI z szablonu i kolekcji parametrów.Creates a new URI from the template and the collection of parameters.

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

Tworzy nowy identyfikator URI z szablonu i kolekcji parametrów.Creates a new URI from the template and the collection of parameters.

BindByName(Uri, NameValueCollection)

Tworzy nowy identyfikator URI z szablonu i kolekcji parametrów.Creates a new URI from the template and the collection of parameters.

BindByName(Uri, NameValueCollection, Boolean)

Tworzy nowy identyfikator URI z szablonu i kolekcji parametrów.Creates a new URI from the template and the collection of parameters.

BindByPosition(Uri, String[])

Tworzy nowy identyfikator URI z szablonu i tablicy wartości parametrów.Creates a new URI from the template and an array of parameter values.

Equals(Object)

Określa, czy określony obiekt jest równy bieżącemu obiektowi.Determines whether the specified object is equal to the current object.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.Serves as the default hash function.

(Odziedziczone po Object)
GetType()

Pobiera Type bieżącego wystąpienia.Gets the Type of the current instance.

(Odziedziczone po Object)
IsEquivalentTo(UriTemplate)

Wskazuje, czy UriTemplate jest strukturalnie odpowiednikiem innym.Indicates whether a UriTemplate is structurally equivalent to another.

Match(Uri, Uri)

Próbuje dopasować Uri do UriTemplate.Attempts to match a Uri to a UriTemplate.

MemberwiseClone()

Tworzy skróconą kopię bieżącego Object.Creates a shallow copy of the current Object.

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący wystąpienie UriTemplate.Returns a string representation of the UriTemplate instance.

Dotyczy