UriTemplate Sınıf

Tanım

Tekdüzen Kaynak tanımlayıcısı (URI) şablonunu temsil eden bir sınıf.A class that represents a Uniform Resource Identifier (URI) template.

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

Örnekler

Aşağıdaki kod, bir UriTemplate örnek oluşturmayı ve bunu bir aday URI 'sine bağlamayı ve nasıl eşleşeceğini gösterir.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

Açıklamalar

Bir URI şablonu, yapısal olarak benzer bir URI kümesi tanımlamanızı sağlar.A URI template allows you to define a set of structurally similar URIs. Şablonlar, bir yol ve bir sorgu olmak üzere iki bölümden oluşur.Templates are composed of two parts, a path and a query. Bir yol, eğik çizgiyle (/) ayrılmış bir dizi kesimden oluşur.A path consists of a series of segments delimited by a slash (/). Her segment bir sabit değere sahip olabilir, bir değişken değeri (küme ayraçları [{}] içinde yazılmış), tam olarak bir segmentin içeriğiyle eşleşir) veya yolun sonunda görünmesi gereken bir joker karakter ("yolun geri kalanı" ile eşleşen bir yıldız işareti [*] olarak yazılmış).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. Sorgu ifadesi tamamen atlanabilir.The query expression can be omitted entirely. Varsa, sıralanmamış bir ad/değer çiftleri serisi belirtir.If present, it specifies an unordered series of name/value pairs. Sorgu ifadesinin öğeleri, sabit değer çiftleri (? x = 2) veya değişken çiftleri (? x = {Val}) olabilir.Elements of the query expression can be either literal pairs (?x=2) or variable pairs (?x={val}). Eşlenmemiş değerlere izin verilmez.Unpaired values are not permitted. Aşağıdaki örneklerde geçerli şablon dizeleri gösterilmektedir:The following examples show valid template strings:

  • "Hava durumu/WA/Seattle""weather/WA/Seattle"

  • "Hava durumu/{State}/{City}""weather/{state}/{city}"

  • "Hava durumu/*""weather/*"

  • "Hava durumu/{State}/{City}? tahmin = bugün"weather/{state}/{city}?forecast=today

  • "Hava durumu/{State}/{City}? tahmin = {Day}"weather/{state}/{city}?forecast={day}

Önceki URI şablonları, hava durumu raporlarının düzenlenmesi için kullanılabilir.The preceding URI templates might be used for organizing weather reports. Küme ayraçları içine alınmış kesimler değişkenlerdir, diğer her şey değişmez değerdir.Segments enclosed in curly braces are variables, everything else is a literal. UriTemplate Uri Değişkenleri gerçek değerlerle değiştirerek örneği öğesine dönüştürebilirsiniz.You can convert a UriTemplate instance into a Uri by replacing variables with actual values. Örneğin, "Hava durumu/{State}/{City}" şablonunu almak ve "{State}" ve "{City}" değişkenlerinin değerlerini koymak size "Hava durumu/WA/Seattle" sağlar.For example, taking the template "weather/{state}/{city}" and putting in values for the variables "{state}" and "{city}" gives you "weather/WA/Seattle". Bir aday URI 'SI verildiğinde, çağırarak belirli bir URI şablonuyla eşleşip eşleşmediğini test edebilirsiniz Match(Uri, Uri) .Given a candidate URI, you can test whether it matches a given URI template by calling Match(Uri, Uri). Ayrıca, UriTemplate Uri veya çağırarak bir değişken değerleri kümesinden oluşturmak için örnekleri de kullanabilirsiniz BindByName(Uri, NameValueCollection) 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[]).

Oluşturucular

UriTemplate(String)

UriTemplateBelirtilen şablon dizesiyle sınıfının yeni bir örneğini başlatır.Initializes a new instance of the UriTemplate class with the specified template string.

UriTemplate(String, Boolean)

UriTemplate sınıfının yeni bir örneğini başlatır.Initializes a new instance of the UriTemplate class.

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

UriTemplate sınıfının yeni bir örneğini başlatır.Initializes a new instance of the UriTemplate class.

UriTemplate(String, IDictionary<String,String>)

UriTemplate sınıfının yeni bir örneğini başlatır.Initializes a new instance of the UriTemplate class.

Özellikler

Defaults

Herhangi bir varsayılan parametre değeri için ad/değer çiftleri koleksiyonunu alır.Gets a collection of name/value pairs for any default parameter values.

IgnoreTrailingSlash

Aday URI 'Leri eşleştirilirken şablondaki eğik çizgilerin "/" yoksayılıp sayılmayacağını belirtir.Specifies whether trailing slashes "/" in the template should be ignored when matching candidate URIs.

PathSegmentVariableNames

Şablondaki yol kesimleri içinde kullanılan değişken adlarının bir koleksiyonunu alır.Gets a collection of variable names used within path segments in the template.

QueryValueVariableNames

Şablondaki sorgu dizesinde kullanılan değişken adlarından oluşan bir koleksiyon alır.Gets a collection of variable names used within the query string in the template.

Yöntemler

BindByName(Uri, IDictionary<String,String>)

Şablondan ve parametre koleksiyonundan yeni bir URI oluşturur.Creates a new URI from the template and the collection of parameters.

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

Şablondan ve parametre koleksiyonundan yeni bir URI oluşturur.Creates a new URI from the template and the collection of parameters.

BindByName(Uri, NameValueCollection)

Şablondan ve parametre koleksiyonundan yeni bir URI oluşturur.Creates a new URI from the template and the collection of parameters.

BindByName(Uri, NameValueCollection, Boolean)

Şablondan ve parametre koleksiyonundan yeni bir URI oluşturur.Creates a new URI from the template and the collection of parameters.

BindByPosition(Uri, String[])

Şablondan ve parametre değerleri dizisinden yeni bir URI oluşturur.Creates a new URI from the template and an array of parameter values.

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.Determines whether the specified object is equal to the current object.

(Devralındığı yer: Object)
GetHashCode()

Varsayılan karma işlevi olarak işlev görür.Serves as the default hash function.

(Devralındığı yer: Object)
GetType()

TypeGeçerli örneği alır.Gets the Type of the current instance.

(Devralındığı yer: Object)
IsEquivalentTo(UriTemplate)

Bir UriTemplate değerin yapısal olarak başka bir eşdeğer olup olmadığını gösterir.Indicates whether a UriTemplate is structurally equivalent to another.

Match(Uri, Uri)

İle ile eşleştirmeye çalışır Uri UriTemplate .Attempts to match a Uri to a UriTemplate.

MemberwiseClone()

Geçerli bir basit kopyasını oluşturur Object .Creates a shallow copy of the current Object.

(Devralındığı yer: Object)
ToString()

Örneğin dize gösterimini döndürür UriTemplate .Returns a string representation of the UriTemplate instance.

Şunlara uygulanır