UriTemplate UriTemplate UriTemplate UriTemplate Class

定義

URI (Uniform Resource Identifier) テンプレートを表すクラス。A class that represents a Uniform Resource Identifier (URI) template.

public ref class UriTemplate
public class UriTemplate
type UriTemplate = class
Public Class UriTemplate
継承
UriTemplateUriTemplateUriTemplateUriTemplate

次のコードは、UriTemplate インスタンスを作成し、それを候補 URI にバインドおよび照合する方法を示しています。The following code demonstrates how to create a UriTemplate instance, and bind and match it to a candidate URI.

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

注釈

URI テンプレートでは、構造が似ている URI のセットを定義できます。A URI template allows you to define a set of structurally similar URIs. テンプレートは、パスとクエリの 2 つの部分から構成されています。Templates are composed of two parts, a path and a query. パスは、スラッシュ (/) で区切られた一連のセグメントから構成されています。A path consists of a series of segments delimited by a slash (/). 各セグメントには、リテラル値、変数値 (中かっこ [{ }] 内に記述。必ず 1 つのセグメントと一致するよう制約)、またはワイルドカード (アスタリスク [*] で記述。"残りのパス" に一致する) を指定することができます。ワイルドカードは、パスの最後に指定する必要があります。Each segment can have a literal value, a variable value (written within curly braces [{ }], constrained to match the contents of exactly one segment), or a wildcard (written as an asterisk [*], which matches "the rest of the path"), which must appear at the end of the path. クエリ式は、すべて省略することができます。The query expression can be omitted entirely. 存在する場合、クエリ式は順序なしの一連の名前/値ペアを指定します。If present, it specifies an unordered series of name/value pairs. クエリ式の要素には、リテラル ペア (?x=2) または変数ペア (?x={val}) を指定できます。Elements of the query expression can be either literal pairs (?x=2) or variable pairs (?x={val}). 対になっていない値は使用できません。Unpaired values are not permitted. 次の例は、有効なテンプレート文字列を示しています。The following examples show valid template strings:

  • "weather/WA/Seattle""weather/WA/Seattle"

  • "weather/{state}/{city}""weather/{state}/{city}"

  • "weather/*""weather/*"

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

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

上の URI テンプレートは天気予報を編成するときに使用されます。The preceding URI templates might be used for organizing weather reports. 中かっこで囲まれたセグメントは変数で、それ以外はすべてリテラルです。Segments enclosed in curly braces are variables, everything else is a literal. 変数を実際の値に置換することで、UriTemplate インスタンスを Uri に変換できます。You can convert a UriTemplate instance into a Uri by replacing variables with actual values. たとえば、"weather/{state}/{city}" テンプレートで変数 "{state}" と "{city}" に値を代入すると、"weather/WA/Seattle" のようになります。For example, taking the template "weather/{state}/{city}" and putting in values for the variables "{state}" and "{city}" gives you "weather/WA/Seattle". 候補 URI を指定すると、Match(Uri, Uri) を呼び出すことで、それが指定された URI テンプレートに一致するかどうかをテストできます。Given a candidate URI, you can test whether it matches a given URI template by calling Match(Uri, Uri). UriTemplate インスタンスを使用し、Uri または BindByName(Uri, NameValueCollection) を呼び出すことで、一連の変数値から BindByPosition(Uri, String[]) を作成できます。You can also use UriTemplate instances to create a Uri from a set of variable values by calling BindByName(Uri, NameValueCollection) or BindByPosition(Uri, String[]).

コンストラクター

UriTemplate(String) UriTemplate(String) UriTemplate(String) UriTemplate(String)

指定したテンプレート文字列を使用して、UriTemplate クラスの新しいインスタンスを初期化します。Initializes a new instance of the UriTemplate class with the specified template string.

UriTemplate(String, Boolean) UriTemplate(String, Boolean) UriTemplate(String, Boolean) UriTemplate(String, Boolean)

UriTemplate クラスの新しいインスタンスを初期化します。Initializes a new instance of the UriTemplate class.

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

UriTemplate クラスの新しいインスタンスを初期化します。Initializes a new instance of the UriTemplate class.

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

UriTemplate クラスの新しいインスタンスを初期化します。Initializes a new instance of the UriTemplate class.

プロパティ

Defaults Defaults Defaults Defaults

既定のパラメーター値に対する名前と値のペアのコレクションを取得します。Gets a collection of name/value pairs for any default parameter values.

IgnoreTrailingSlash IgnoreTrailingSlash IgnoreTrailingSlash IgnoreTrailingSlash

候補 URI と照合する際にテンプレートの末尾のスラッシュ記号 "/" を無視するかどうかを指定します。Specifies whether trailing slashes "/" in the template should be ignored when matching candidate URIs.

PathSegmentVariableNames PathSegmentVariableNames PathSegmentVariableNames PathSegmentVariableNames

テンプレートのパス セグメント内で使用される変数名のコレクションを取得します。Gets a collection of variable names used within path segments in the template.

QueryValueVariableNames QueryValueVariableNames QueryValueVariableNames QueryValueVariableNames

テンプレートのクエリ文字列内で使用される変数名のコレクションを取得します。Gets a collection of variable names used within the query string in the template.

メソッド

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

テンプレートおよびパラメーターのコレクションから新しい URI を作成します。Creates a new URI from the template and the collection of parameters.

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

テンプレートおよびパラメーターのコレクションから新しい URI を作成します。Creates a new URI from the template and the collection of parameters.

BindByName(Uri, NameValueCollection) BindByName(Uri, NameValueCollection) BindByName(Uri, NameValueCollection) BindByName(Uri, NameValueCollection)

テンプレートおよびパラメーターのコレクションから新しい URI を作成します。Creates a new URI from the template and the collection of parameters.

BindByName(Uri, NameValueCollection, Boolean) BindByName(Uri, NameValueCollection, Boolean) BindByName(Uri, NameValueCollection, Boolean) BindByName(Uri, NameValueCollection, Boolean)

テンプレートおよびパラメーターのコレクションから新しい URI を作成します。Creates a new URI from the template and the collection of parameters.

BindByPosition(Uri, String[]) BindByPosition(Uri, String[]) BindByPosition(Uri, String[]) BindByPosition(Uri, String[])

テンプレートおよびパラメーター値の配列から新しい URI を作成します。Creates a new URI from the template and an array of parameter values.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(Inherited from Object)
IsEquivalentTo(UriTemplate) IsEquivalentTo(UriTemplate) IsEquivalentTo(UriTemplate) IsEquivalentTo(UriTemplate)

UriTemplate が構造的に他のものと等しいかどうかを示します。Indicates whether a UriTemplate is structurally equivalent to another.

Match(Uri, Uri) Match(Uri, Uri) Match(Uri, Uri) Match(Uri, Uri)

UriUriTemplate との照合を試みます。Attempts to match a Uri to a UriTemplate.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

UriTemplate インスタンスの文字列表現を返します。Returns a string representation of the UriTemplate instance.

適用対象