UriTemplateTable Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Класс, представляющий ассоциативный набор UriTemplate объектов.
public ref class UriTemplateTable
public class UriTemplateTable
type UriTemplateTable = class
Public Class UriTemplateTable
- Наследование
-
UriTemplateTable
Примеры
В следующем коде показано, как создать UriTemplateTable, заполнить его и использовать его для сопоставления с кандидатом Uri.
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"));
table.MakeReadOnly(true);
Console.WriteLine("KeyValuePairs:");
foreach (KeyValuePair<UriTemplate, Object> keyPair in table.KeyValuePairs)
{
Console.WriteLine($"{keyPair.Key}, {keyPair.Value}");
}
Console.WriteLine();
//Call MatchSingle to retrieve some match results:
ICollection<UriTemplateMatch> results = null;
Uri weatherInSeattle = new Uri("http://localhost/weather/Washington/Seattle");
results = table.Match(weatherInSeattle);
if( results != null)
{
Console.WriteLine("Matching templates:");
foreach (UriTemplateMatch match in results)
{
Console.WriteLine(match.Template);
}
}
Dim prefix As New Uri("http://localhost/")
' Create a series of templates
Dim weatherByCity As New UriTemplate("weather/ state}/ city}")
Dim weatherByCountry As New UriTemplate("weather/ country}/ village}")
Dim weatherByState As New UriTemplate("weather/ state}")
Dim traffic As New UriTemplate("traffic/*")
Dim wildcard As New UriTemplate("*")
' Create a template table
Dim table As New UriTemplateTable(prefix)
' Add each template to the table with some associated data
table.KeyValuePairs.Add(New KeyValuePair(Of UriTemplate, Object)(weatherByCity, "weatherByCity"))
table.KeyValuePairs.Add(New KeyValuePair(Of UriTemplate, Object)(weatherByCountry, "weatherByCountry"))
table.KeyValuePairs.Add(New KeyValuePair(Of UriTemplate, Object)(weatherByState, "weatherByState"))
table.KeyValuePairs.Add(New KeyValuePair(Of UriTemplate, Object)(traffic, "traffic"))
table.MakeReadOnly(True)
Console.WriteLine("KeyValuePairs:")
For Each keyPair As KeyValuePair(Of UriTemplate, Object) In table.KeyValuePairs
Console.WriteLine(" 0}, 1}", keyPair.Key, keyPair.Value)
Next
Console.WriteLine()
' Call MatchSingle to retrieve some match results:
Dim results As System.Collections.Generic.ICollection(Of UriTemplateMatch) = Nothing
Dim weatherInSeattle As Uri = New Uri("http://localhost/weather/Washington/Seattle")
results = table.Match(weatherInSeattle)
If results IsNot Nothing Then
Console.WriteLine("Matching templates:")
For Each match As UriTemplateMatch In results
Console.WriteLine(" 0}", match.Template)
Next
End If
Комментарии
A UriTemplateTable — это ассоциативный набор UriTemplate объектов, привязанных к объекту выбора разработчика. Он позволяет сопоставить кандидатов с универсальными идентификаторами ресурсов (URI) с шаблонами в наборе и получить данные, связанные с соответствующими шаблонами. Содержимое UriTemplateTable можно изменить до MakeReadOnly(Boolean) вызова метода, в то время как происходит одно из следующих типов проверки:
При MakeReadOnly(Boolean) вызове передачи
falseпроверки, чтобы убедиться, UriTemplateTable что таблица не содержит нескольких структурных эквивалентных шаблонов. Если он находит такие шаблоны, он создает исключение. Этот тип проверки используется в сочетании с MatchSingle(Uri) тем, когда требуется убедиться, что только один шаблон соответствует входящему URI.При MakeReadOnly(Boolean) вызове передачи
trueнесколько структурных эквивалентных шаблонов можно содержать в пределах.UriTemplateTable Однако любые строки запроса в шаблонах не должны быть неоднозначными; идентичные строки запроса разрешены. Дополнительные сведения о неоднозначных строках запросов см. в разделе UriTemplate и UriTemplateTable.
Конструкторы
| Имя | Описание |
|---|---|
| UriTemplateTable() |
Инициализирует новый экземпляр класса UriTemplateTable. |
| UriTemplateTable(IEnumerable<KeyValuePair<UriTemplate,Object>>) |
Инициализирует новый экземпляр UriTemplateTable класса с указанной коллекцией пар "ключ-значение". |
| UriTemplateTable(Uri, IEnumerable<KeyValuePair<UriTemplate,Object>>) |
Инициализирует новый экземпляр UriTemplateTable класса с указанным базовым адресом и коллекцией пар "ключ-значение". |
| UriTemplateTable(Uri) |
Инициализирует новый экземпляр UriTemplateTable класса с указанным базовым адресом. |
Свойства
| Имя | Описание |
|---|---|
| BaseAddress |
Возвращает или задает базовый адрес для экземпляра UriTemplateTable . |
| IsReadOnly |
Возвращает значение, указывающее, является ли UriTemplateTable только чтение. |
| KeyValuePairs |
Возвращает коллекцию пар "ключ-значение", состоящих из UriTemplate объектов и связанных с ними данных. |
| OriginalBaseAddress |
Возвращает исходный базовый адрес. |
Методы
| Имя | Описание |
|---|---|
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| MakeReadOnly(Boolean) |
UriTemplateTable Делает только чтение. |
| Match(Uri) |
Пытается сопоставить кандидата Uri с UriTemplateTable. |
| MatchSingle(Uri) |
Пытается сопоставить кандидата Uri с UriTemplateTable. |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |