Шаблоны разработки, используемые классами отражения
Наиболее часто используемые методы в пространстве имен System.Reflection используют постоянный шаблон. Элементы классов Module, Type, и MemberInfo используют шаблоны разработки, приведенные в следующей таблице.
Сигнатура элемента |
Описание |
---|---|
MyInstance[] FindXxx(filter, filterCriteria) |
Находит и возвращает список типов, соответствующих условиям фильтра, или пустой массив, если ни один из типов, реализованных данным типом, не соответствует фильтру. Пример: Type.FindInterfaces |
MyInstance GetXxx(<parameters>) |
Возвращает тип, который однозначно задан параметрами <parameters>. Если такого типа не существует, элемент возвращает пустую ссылку (Nothing в Visual Basic). Обратите внимание, что <parameters> уникально идентифицируют экземпляр. Пример: Type.GetInterface |
MyInstance[] GetXxxs() |
Возвращает все открытые типы. Если открытых типов нет, элемент возвращает пустой массив. Пример: Type.GetFields |
MyInstance[] GetXxxs(<parameters>) |
Возвращает все типы, заданные в <parameters>. Если таких типов нет, элемент возвращает пустой массив. Обратите внимание, что <parameters> не обязательно указывает на уникальный экземпляр. |
Еще одним шаблоном разработки является использования делегатов. Они, как правило, используются в отражении для фильтрации набора результатов методов, которые возвращают массивы объектов.