День сто пятидесятый. #ЗаметкиНаПолях

Отражение. Продолжение

Наряду с System.Type, классы в пространстве имен System.Reflection позволяют получать информацию о загруженных сборках и определенных в них типах, таких как классы, интерфейсы и структуры. Сборки содержат модули, модули содержат типы, а типы содержат члены. Отражения предоставляет объекты, которые инкапсулируют сборки, модули и типы. Вы можете использовать отражение, чтобы динамически создавать экземпляр типа, связывать тип с существующим объектом или получать тип существующего объекта. Затем вы можете вызвать методы типа или получить доступ к его полям и свойствам.



Классы System.Reflection:

1. Assembly
- распознавание и загрузка сборки, загрузка модулей из манифеста сборки, поиск типа в этой сборке и создание его экземпляров.

2. Module - обнаружение информации, такой как сборка, содержащая модуль и классы в модуле, получение всех глобальных и неглобальные методов, определенных в модуле.

3. ConstructorInfo - обнаружение имени, параметров, модификаторов доступа и подробностей реализации конструктора. Методы GetConstructors и GetConstructor используются для вызова определенного конструктора.

4. MethodInfo - обнаружение имени, типа возвращаемого значения, параметров, модификаторов доступа и подробностей реализации метода. Методы GetMethods и GetMethod используются для вызова определенного метода.

5. FieldInfo – обнаружение имени, модификаторов доступа и подробностей реализации поля, а также для получения или установки значений поля.

6. EventInfo – обнаружение имени, типа данных обработчика событий, пользовательских атрибутов, и т.п. события, а также для добавления или удаления обработчиков событий.

7. PropertyInfo - обнаружение имени, типа данных и состояния свойства, а также для получения или установки значений свойства.

8. ParameterInfo - обнаружение имени параметра, типа данных, является ли параметр входным или выходным, а также положения параметра в сигнатуре метода.

9. CustomAttributeData - обнаружение информации о пользовательских атрибутах, позволяет исследовать атрибуты, не создавая их экземпляры.



Отражение также можно использовать для создания приложений, называемых браузерами типов, которые позволяют пользователям выбирать типы, а затем просматривать информацию об этих типах.



Продолжение следует…



Источник: https://docs.microsoft.com/ru-ru/dotnet/framework/reflection-and-codedom/reflection