Прочитать на английском

Поделиться через


UriTemplateTable Класс

Определение

Класс, представляющий ассоциативный набор объектов UriTemplate.

C#
public class UriTemplateTable
Наследование
UriTemplateTable

Примеры

В следующем примере кода показано, как создать объект UriTemplateTable, заполнить его и сравнить с ним потенциальный Uri.

C#
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);
    }
}

Комментарии

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)

Инициализирует новый экземпляр класса UriTemplateTable с указанным базовым адресом.

UriTemplateTable(Uri, IEnumerable<KeyValuePair<UriTemplate,Object>>)

Инициализирует новый экземпляр класса 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)

Применяется к

Продукт Версии
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1