The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

UriTemplateTable.MatchSingle Method (Uri)


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Attempts to match a candidate Uri to the UriTemplateTable.

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

public UriTemplateMatch MatchSingle(
	Uri uri


Type: System.Uri

The candidate URI.

Return Value

Type: System.UriTemplateMatch

A single UriTemplateMatch instance.

This method returns, at most, one match. If more than one match is found, a UriTemplateMatchException is thrown.

The following example shows how to call the MatchSingle(Uri) method.

Uri prefix = new Uri("http://localhost/");

//Create a series of templates
UriTemplate weatherByCity = new UriTemplate("weather/ state}/ city}");
UriTemplate weatherByCountry = new UriTemplate("weather/ country}/ village}");
UriTemplate weatherByState = new UriTemplate("weather/ state}");
UriTemplate traffic = new UriTemplate("traffic/*");
UriTemplate wildcard = new UriTemplate("*");

//Create a template table
UriTemplateTable table = new UriTemplateTable(prefix);
//Add each template to the table with some associated data
table.KeyValuePairs.Add(new KeyValuePair<UriTemplate, Object>(weatherByCity, "weatherByCity"));
table.KeyValuePairs.Add(new KeyValuePair<UriTemplate, Object>(weatherByCountry, "weatherByCountry"));
table.KeyValuePairs.Add(new KeyValuePair<UriTemplate, Object>(weatherByState, "weatherByState"));
table.KeyValuePairs.Add(new KeyValuePair<UriTemplate, Object>(traffic, "traffic"));


//Call MatchSingle to retrieve some match results:
Uri weatherInSeattle = new Uri("http://localhost/weather/Washington/Seattle");
UriTemplateMatch match = table.MatchSingle(weatherInSeattle);

Console.WriteLine("Matching template: {0}", match.Template.ToString());

.NET Framework
Available since 3.5
Return to top