UriTemplate Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Kelas yang mewakili templat Pengidentifikasi Sumber Daya Seragam (URI).
public ref class UriTemplate
public class UriTemplate
type UriTemplate = class
Public Class UriTemplate
- Warisan
-
UriTemplate
Contoh
Kode berikut menunjukkan cara membuat UriTemplate instans, dan mengikat dan mencocokkannya dengan URI kandidat.
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
Keterangan
Templat URI memungkinkan Anda menentukan sekumpulan URI yang serupa secara struktural. Templat terdiri atas dua bagian, jalur dan kueri. Jalur terdiri dari serangkaian segmen yang dibatasi oleh garis miring (/). Setiap segmen dapat memiliki nilai literal, nilai variabel (ditulis dalam kurung kurawal [{ }], dibatasi untuk mencocokkan konten tepat satu segmen), atau simbol liar (ditulis sebagai tanda bintang [*], yang cocok dengan "sisa dari jalur"), yang harus muncul di akhir jalur. Ekspresi kueri tidak perlu digunakan sama sekali. Jika ada, ini menentukan serangkaian pasangan nama/nilai yang tidak diurutkan. Elemen ekspresi kueri dapat berupa pasangan harfiah (?x=2) atau pasangan variabel (?x={val}). Nilai yang tidak berpasangan tidak diizinkan. Contoh berikut menunjukkan string templat yang valid:
"weather/WA/Seattle"
"weather/{state}/{city}"
"cuaca/*"
"weather/{state}/{city}?forecast=today
"weather/{state}/{city}?forecast={day}
Templat URI sebelumnya mungkin digunakan untuk mengatur laporan cuaca. Segmen yang diapit dalam kurung kurawal adalah variabel, yang lainnya adalah harfiah. Anda dapat mengonversi UriTemplate instans menjadi Uri dengan mengganti variabel dengan nilai aktual. Misalnya, mengambil templat "weather/{state}/{city}" dan memasukkan nilai untuk variabel "{state}" dan "{city}" memberi Anda "weather/WA/Seattle". Mengingat URI kandidat, Anda dapat menguji apakah cocok dengan templat URI tertentu dengan memanggil Match(Uri, Uri). Anda juga dapat menggunakan UriTemplate instans untuk membuat Uri dari sekumpulan nilai variabel dengan memanggil BindByName(Uri, NameValueCollection) atau BindByPosition(Uri, String[]).
Konstruktor
| Nama | Deskripsi |
|---|---|
| UriTemplate(String, Boolean, IDictionary<String,String>) |
Menginisialisasi instans baru dari kelas UriTemplate. |
| UriTemplate(String, Boolean) |
Menginisialisasi instans baru dari kelas UriTemplate. |
| UriTemplate(String, IDictionary<String,String>) |
Menginisialisasi instans baru dari kelas UriTemplate. |
| UriTemplate(String) |
Menginisialisasi instans UriTemplate baru kelas dengan string templat yang ditentukan. |
Properti
| Nama | Deskripsi |
|---|---|
| Defaults |
Mendapatkan kumpulan pasangan nama/nilai untuk nilai parameter default apa pun. |
| IgnoreTrailingSlash |
Menentukan apakah garis miring berikutnya "/" dalam templat harus diabaikan saat mencocokkan URI kandidat. |
| PathSegmentVariableNames |
Mendapatkan kumpulan nama variabel yang digunakan dalam segmen jalur dalam templat. |
| QueryValueVariableNames |
Mendapatkan kumpulan nama variabel yang digunakan dalam string kueri dalam templat. |
Metode
| Nama | Deskripsi |
|---|---|
| BindByName(Uri, IDictionary<String,String>, Boolean) |
Membuat URI baru dari templat dan kumpulan parameter. |
| BindByName(Uri, IDictionary<String,String>) |
Membuat URI baru dari templat dan kumpulan parameter. |
| BindByName(Uri, NameValueCollection, Boolean) |
Membuat URI baru dari templat dan kumpulan parameter. |
| BindByName(Uri, NameValueCollection) |
Membuat URI baru dari templat dan kumpulan parameter. |
| BindByPosition(Uri, String[]) |
Membuat URI baru dari templat dan array nilai parameter. |
| Equals(Object) |
Menentukan apakah objek yang ditentukan sama dengan objek saat ini. (Diperoleh dari Object) |
| GetHashCode() |
Berfungsi sebagai fungsi hash default. (Diperoleh dari Object) |
| GetType() |
Mendapatkan Type instans saat ini. (Diperoleh dari Object) |
| IsEquivalentTo(UriTemplate) |
Menunjukkan apakah setara secara struktural dengan yang UriTemplate lain. |
| Match(Uri, Uri) |
Mencoba mencocokkan dengan UriUriTemplate. |
| MemberwiseClone() |
Membuat salinan dangkal dari Objectsaat ini. (Diperoleh dari Object) |
| ToString() |
Mengembalikan representasi string instans UriTemplate . |