В главе 2 я говорил, что компилятор генерирует переносимый в Win32 исполняемый модуль (portable executable, РЕ), состоящий главным образом из MSIL-кода и метаданных. Одна из очень мощных возможностей .NET позволяет вам писать код, чтобы обращаться к метаданным приложения посредством
отражения
(reflection). Если просто, то отражение — это способность получать информацию о типе в период выполнения. В этой главе будет описан API отражения и способы его использования при обработке модулей и типов, входящих в сборки для получения различных характеристик типа, определенных в период разработки. Вы также познакомитесь с некоторыми усложненными способами применения отражения, такими как динамический вызов методов и использование информации о типе (через позднее связывание) и даже создание и исполнение MSIL-кода в период выполнения!