UriTemplate Klass

Definition

En klass som representerar en URI-mall (Uniform Resource Identifier).

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

Exempel

Följande kod visar hur du skapar en UriTemplate instans och binder och matchar den med en kandidat-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

Kommentarer

Med en URI-mall kan du definiera en uppsättning strukturellt liknande URI:er. Mallar består av två delar, en sökväg och en fråga. En sökväg består av en serie segment avgränsade med ett snedstreck (/). Varje segment kan ha ett literalvärde, ett variabelvärde (skrivet inom klammerparenteser [{ }], begränsat för att matcha innehållet i exakt ett segment) eller ett jokertecken (skrivet som en asterisk [*], som matchar "resten av sökvägen"), som måste visas i slutet av sökvägen. Frågeuttrycket kan utelämnas helt. Om det finns anger den en osorterad serie med namn/värde-par. Element i frågeuttrycket kan vara antingen literalpar (?x=2) eller variabelpar (?x={val}). Värden utan par är inte tillåtna. I följande exempel visas giltiga mallsträngar:

  • "weather/WA/Seattle"

  • "weather/{state}/{city}"

  • "väder/*"

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

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

De föregående URI-mallarna kan användas för att organisera väderrapporter. Segment som omges av klammerparenteser är variabler, allt annat är en literal. Du kan konvertera en UriTemplate instans till en Uri genom att ersätta variabler med faktiska värden. Om du till exempel tar mallen "weather/{state}/{city}" och anger värden för variablerna "{state}" och "{city}" får du "väder/WA/Seattle". Med en kandidat-URI kan du testa om den matchar en viss URI-mall genom att anropa Match(Uri, Uri). Du kan också använda UriTemplate instanser för att skapa en Uri från en uppsättning variabelvärden genom att anropa BindByName(Uri, NameValueCollection) eller BindByPosition(Uri, String[]).

Konstruktorer

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

Initierar en ny instans av UriTemplate klassen.

UriTemplate(String, Boolean)

Initierar en ny instans av UriTemplate klassen.

UriTemplate(String, IDictionary<String,String>)

Initierar en ny instans av UriTemplate klassen.

UriTemplate(String)

Initierar en ny instans av UriTemplate klassen med den angivna mallsträngen.

Egenskaper

Name Description
Defaults

Hämtar en samling namn/värde-par för alla standardparvärden.

IgnoreTrailingSlash

Anger om avslutande snedstreck "/" i mallen ska ignoreras vid matchande kandidat-URI:er.

PathSegmentVariableNames

Hämtar en samling variabelnamn som används inom sökvägssegment i mallen.

QueryValueVariableNames

Hämtar en samling variabelnamn som används i frågesträngen i mallen.

Metoder

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

Skapar en ny URI från mallen och samlingen med parametrar.

BindByName(Uri, IDictionary<String,String>)

Skapar en ny URI från mallen och samlingen med parametrar.

BindByName(Uri, NameValueCollection, Boolean)

Skapar en ny URI från mallen och samlingen med parametrar.

BindByName(Uri, NameValueCollection)

Skapar en ny URI från mallen och samlingen med parametrar.

BindByPosition(Uri, String[])

Skapar en ny URI från mallen och en matris med parametervärden.

Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
IsEquivalentTo(UriTemplate)

Anger om en UriTemplate är strukturellt likvärdig med en annan.

Match(Uri, Uri)

Försöker matcha en Uri med en UriTemplate.

MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
ToString()

Returnerar en strängrepresentation av instansen UriTemplate .

Gäller för