UriTemplate Kelas

Definisi

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 .

Berlaku untuk