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, yol ve sorgu olmak üzere iki bölümden oluşur. Yol, eğik çizgi (/) ile sınırlandırılmış bir dizi kesimden oluşur. Her segmentin değişmez değeri, değişken değeri (küme ayraçları [{ }] içinde yazılmış, tam olarak bir kesimin içeriğiyle eşleşecek şekilde kısıtlanmış) veya bir joker karakter (yolun sonunda görünmesi gereken "yolun geri kalanı" ile eşleşen bir yıldız işareti [*] olarak yazılır) olabilir. 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:

  • "weather/WA/Seattle"

  • "hava durumu/{state}/{city}"

  • "hava durumu/*"

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

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

Hava durumu raporlarını düzenlemek için önceki URI şablonları 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 örneği UriTemplate bir Uri örneğine 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 verdiğinizde, öğ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 Uri için örnekleri de kullanabilirsinizUriTemplate.BindByName(Uri, NameValueCollection)BindByPosition(Uri, String[])

Oluşturucular

UriTemplate(String)

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

UriTemplate(String, Boolean)

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

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

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.

Özellikler

Defaults

Tüm varsayılan parametre değerleri için ad/değer çiftleri koleksiyonunu alır.

IgnoreTrailingSlash

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

PathSegmentVariableNames

Şablondaki yol kesimleri içinde kullanılan değişken adlarından oluşan bir koleksiyon alır.

QueryValueVariableNames

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

Yöntemler

BindByName(Uri, IDictionary<String,String>)

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

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

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

BindByName(Uri, NameValueCollection)

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

BindByName(Uri, NameValueCollection, Boolean)

Ş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()

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

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

a'nın UriTemplate yapısal olarak başka bir değerle eşdeğer olup olmadığını gösterir.

Match(Uri, Uri)

bir ile eşleşmeyi UriUriTemplatedener.

MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

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

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

Şunlara uygulanır