UriTemplate Sınıf

Tanım

Tekdüzen Kaynak Tanımlayıcısı (URI) şablonunu temsil eden bir sınıf.

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

Örnekler

Aşağıdaki kodda örnek oluşturma UriTemplate ve bunu aday URI'sine bağlama ve eşleştirme işlemleri gösterilmektedir.

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

URI şablonu, yapısal olarak benzer bir URI kümesi tanımlamanızı sağlar. Şablonlar, bir yol ve sorgu olmak üzere iki bölümden oluşur. Yol, eğik çizgi (/) ile ayrılmış bir dizi kesimden oluşur. Her bir segment, değişmez bir değer, bir değişken değeri (küme ayraçları [{ }] içinde yazılır ve tam olarak bir segmentin içeriğiyle eşleşecek şekilde sınırlandırılır) veya yolun sonunda "yolun geri kalanıyla" eşleşen joker karakteri olan bir yıldız işareti [*] içerebilir. Sorgu ifadesi tamamen atlanabilir. Varsa, sıralanmamış bir ad/değer çifti serisi belirtir. Sorgu ifadesinin öğeleri değişmez değer çiftleri (?x=2) veya değişken çiftleri (?x={val}) olabilir. Eşleşmeyen değerlere izin verilmez. Aşağıdaki örneklerde geçerli şablon dizeleri gösterilmektedir:

  • "hava durumu/WA/Seattle"

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

  • "hava durumu/*"

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

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

Önceki URI şablonları hava durumu raporlarını düzenlemek için kullanılabilir. Küme ayraçları içine alınmış segmentler değişkendir, diğer her şey değişmez değerdir. Değişkenleri gerçek değerlerle değiştirerek bir UriTemplate örneği'ne Uri dönüştürebilirsiniz. Örneğin, "weather/{state}/{city}" şablonunu alıp "{state}" ve "{city}" değişkenleri için değerler koymak size "weather/WA/Seattle" verir. Aday URI'sini göz önünde bulundurarak, öğesini çağırarak Match(Uri, Uri)belirli bir URI şablonuyla eşleşip eşleşmediğini test edebilirsiniz. Veya öğesini çağırarak bir dizi değişken değerinden oluşturmak UriTemplate için örnekleri de kullanabilirsinizUri.BindByName(Uri, NameValueCollection)BindByPosition(Uri, String[])

Oluşturucular

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

UriTemplate sınıfının yeni bir örneğini başlatır.

UriTemplate(String, Boolean)

UriTemplate sınıfının yeni bir örneğini başlatır.

UriTemplate(String, IDictionary<String,String>)

UriTemplate sınıfının yeni bir örneğini başlatır.

UriTemplate(String)

Belirtilen şablon dizesiyle sınıfının yeni bir örneğini UriTemplate başlatır.

Özellikler

Name Description
Defaults

Varsayılan parametre değerleri için bir ad/değer çiftleri koleksiyonu alır.

IgnoreTrailingSlash

Aday URI'leri eşleştirirken şablondaki sondaki "/" eğik çizgilerinin yoksayılıp yoksayılmayacağını belirtir.

PathSegmentVariableNames

Şablondaki yol kesimleri içinde kullanılan değişken adları koleksiyonunu alır.

QueryValueVariableNames

Şablondaki sorgu dizesi içinde kullanılan değişken adları koleksiyonunu alır.

Yöntemler

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

Şablondan ve parametre koleksiyonundan yeni bir URI oluşturur.

BindByName(Uri, IDictionary<String,String>)

Şablondan ve parametre koleksiyonundan yeni bir URI oluşturur.

BindByName(Uri, NameValueCollection, Boolean)

Şablondan ve parametre koleksiyonundan yeni bir URI oluşturur.

BindByName(Uri, NameValueCollection)

Şablondan ve parametre koleksiyonundan yeni bir URI oluşturur.

BindByPosition(Uri, String[])

Şablondan yeni bir URI ve parametre değerleri dizisi oluşturur.

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

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

Varsayılan karma işlevi işlevi görür.

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

Geçerli örneğin Type alır.

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

a'nın UriTemplate yapısal olarak diğerine eşdeğer olup olmadığını gösterir.

Match(Uri, Uri)

ile Uri eşleştirmeyi UriTemplatedener.

MemberwiseClone()

Geçerli Objectbasit bir kopyasını oluşturur.

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

Örneğin dize gösterimini UriTemplate döndürür.

Şunlara uygulanır