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, 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. |