.Net Review
.Net Review
Канал о технологиях .Net и не только. Здесь вы найдете разборы, уроки, фишки технологий и языков программирования... https://t.me/dotnetreview
Read 1 minute

С# Рефлексия часть 1. Зачем нужна?

Image for post

В информатике отражение или рефлексия означает процесс, во время которого программа может отслеживать и модифицировать собственную структуру и поведение во время выполнения. Парадигма программирования, положенная в основу отражения, называется рефлексивным программированием. Это один из видов метапрограммирования.

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

Когда использовать?

Рефлексия не частый в использовании инструмент в C#, однако важно знать, что он позволяет делать. Яркими примерами использования рефлексии является применением в реализации IOC (Inversion of Control, про IOC можно будет узнать в нашем телеграмм канале). Также используется для получении информации о методах классах и т.д. в библиотеках. Можно к примеру получить данные о методе и использовать его, ещё примеры пишите в комментариях.

Работа с рефлексией в C#

Для работы с рефлексией необходимо подключить пространство имен System.Reflection, которое позволяет работать со следующими классами (описаны основные классы):

  • MemberInfo: базовый абстрактный класс, определяющий общий функционал для классов EventInfo, FieldInfo, MethodInfo и PropertyInfo.
  • EventInfo: класс, хранящий информацию о событии.
  • FieldInfo: хранит информацию об определенном поле типа.
  • MethodInfo: хранит информацию об определенном методе.
  • PropertyInfo: хранит информацию о свойстве.
  • ParameterInfo: класс, хранящий информацию о параметре метода.

Также используя класс System.Type, который содержит методы получения данных методов, классов, событий и т.д. Эти методы возвращают классы из System.Reflection.

Подробнее об использовании рефлексии в следующий статьях. Спасибо за внимание!

Источники: Wiki, Metanit

Наш телеграмм канал: https://t.me/dotnetreview

821 views
Add
More
.Net Review
Канал о технологиях .Net и не только. Здесь вы найдете разборы, уроки, фишки технологий и языков программирования... https://t.me/dotnetreview
Follow