UriTemplateMatch.BoundVariables UriTemplateMatch.BoundVariables UriTemplateMatch.BoundVariables UriTemplateMatch.BoundVariables Property

Definition

Gets the BoundVariables collection for the template match.

public:
 property System::Collections::Specialized::NameValueCollection ^ BoundVariables { System::Collections::Specialized::NameValueCollection ^ get(); };
public System.Collections.Specialized.NameValueCollection BoundVariables { get; }
member this.BoundVariables : System.Collections.Specialized.NameValueCollection
Public ReadOnly Property BoundVariables As NameValueCollection

Property Value

A NameValueCollection instance that contains template variable values extracted from the URI during the match.

Examples

The following code shows how to access the BoundVariables property.

UriTemplate template = new UriTemplate("weather/{state}/{city}?forecast=today");
Uri baseAddress = new Uri("http://localhost");
Uri fullUri = new Uri("http://localhost/weather/WA/Seattle?forecast=today");

Console.WriteLine("Matching {0} to {1}", template.ToString(), fullUri.ToString());

// Match a URI to a template
UriTemplateMatch results = template.Match(baseAddress, fullUri);
if (results != null)
{
    // BaseUri
    Console.WriteLine("BaseUri: {0}", results.BaseUri);

    Console.WriteLine("BoundVariables:");
    foreach (string variableName in results.BoundVariables.Keys)
    {
        Console.WriteLine("    {0}: {1}", variableName, results.BoundVariables[variableName]);
    }
}
// Code output:
// BaseUri: http://localhost/
// BoundVariables:
//  state: wa
//  city: seattleConsole.WriteLine("BaseUri: {0}", results.BaseUri);
Dim template As New UriTemplate("weather/ state}/ city}?forecast=today")
Dim baseAddress As New Uri("http://localhost")
Dim fullUri As New Uri("http://localhost/weather/WA/Seattle?forecast=today")

Console.WriteLine("Matching  0} to  1}", template.ToString(), fullUri.ToString())

'Match a URI to a template
Dim results As UriTemplateMatch = template.Match(baseAddress, fullUri)
If (results IsNot Nothing) Then

    'BaseUri
    Console.WriteLine("BaseUri:  0}", results.BaseUri)

    Console.WriteLine("BoundVariables:")
    For Each variableName As String In results.BoundVariables.Keys
        Console.WriteLine("     0}:  1}", variableName, results.BoundVariables(variableName))
    Next
End If
'Code output:
'BaseUri: http://localhost/
'BoundVariables:
' state: wa
' city: seattleConsole.WriteLine("BaseUri:  0}", results.BaseUri) 

Remarks

Each template variable name appears as a name in this collection, and the value bound to that variable is stored under the corresponding name. The values in this collection have had all escape sequences translated into actual characters. This name value collection uses a case insensitive search when matching variable names.

Applies to