UriTemplate Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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. |