UriTemplate.BindByName Method (Uri, NameValueCollection)

 

Creates a new URI from the template and the collection of parameters.

Namespace:   System
Assembly:  System.ServiceModel (in System.ServiceModel.dll)

public Uri BindByName(
	Uri baseAddress,
	NameValueCollection parameters
)

Parameters

baseAddress
Type: System.Uri

The base address.

parameters
Type: System.Collections.Specialized.NameValueCollection

The parameter values.

Return Value

Type: System.Uri

A new instance.

The NameValueCollection parameter contains a collection of parameter name/value pairs. The parameters are matched up against the variables within the template by a case-insensitive comparison. Values passed in this collection are escaped.

System_CAPS_noteNote

The name/value collection passed to BindByName(Uri, NameValueCollection) must contain a key for every template variable. Extra name/value pairs that do not match template variables are appended to the query string of the final URI.

System_CAPS_noteNote

It is possible to pass in text within the name/value pairs that prevent the generated URI from matching the template that is used to generate it. Examples of such text includes: '/', '..', '*', '{', and '}'.

The following example shows how to call the BindByName(Uri, NameValueCollection) method.

UriTemplate template = new UriTemplate("weather/{state}/{city}?forecast={day}");
Uri prefix = new Uri("http://localhost");

NameValueCollection parameters = new NameValueCollection();
parameters.Add("state", "Washington");
parameters.Add("city", "Redmond");
parameters.Add("day", "Today");
Uri namedUri = template.BindByName(prefix, parameters);

.NET Framework
Available since 3.5
Return to top
Show: