Четверг, 13.05.2021, 12:19
Приветствую Вас Гость | RSS | PDA

Всё для студента информата

Полезная информация

Статьи IT

Всё для студента IT » Статьи » Программирование для Microsoft® .NET

Управляемые модули .NET

В результате обработки программы компилятором С#, Visual Basic .NET или любым другим компилятором способным генерировать CIL, получают управляемый модуль (managed module), т. е. просто исполняемый файл, предназначенный для исполнения CLR. Обычно, но не всегда расширением имени файла будет EXE, DLL или NETMODULE.

Внутри управляемого модуля есть четыре важных элемента:

• заголовок файла Windows Portable Executable (PE);
• заголовок CLR, содержащий такие сведения, как месторасположение CIL и метаданных;
• метаданные, описывающие все, что содержится внутри модуля и внешние зависимости;
• команды CIL, сгенерированные из исходного текста.

В каждом управляемом модуле имеются метаданные, описывающие его содержимое. Метаданные — это обязательный компонент, каждый CIL-совместимый компилятор должен их генерировать. Это важно, так как отсюда следует, что любой управляемый модуль сам себя описывает. Допустим, вам дали обычный ЕХЕ или DLL и попросили, «взломав» его, узнать, какие там классы и из каких членов они состоят. Легко ли вы справитесь с этим? А вот в случае управляемого модуля — нет проблем.

Метаданные являются аналогом библиотеки типов СОМ за исключением двух важных отличий:

• библиотеки типов необязательны — метаданные обязательны:
• метаданные всегда описывают модуль полостью, а библиотеки типов — не всегда.

Метаданные важны потому, что CLR нужна возможность определять, какие типы присутствуют в каждом из загружаемых ею управляемых модулей. Но эта возможность важна также для компиляторов и других утилит, работающих с управляемыми исполняемыми файлами. Благодаря метаданным, Visual Studio .NET поддерживает IntelliSense — средство, позволяющее отображать контекстно-зависимый список доступных методов и свойств при вводе в редакторе имени экземпляра класса. И именно метаданные позволяют компилятору С# «заглянуть» в DLL, содержащую класс, написанный на Visual Basic .NET, и использовать его как базовый для нового класса в С# - программе.

Похожие статьи:

Не нашли то, что Вам нужно?.. Найдите ответ на форуме!
Категория: Программирование для Microsoft® .NET | Добавил: Akron (16.02.2012)
Просмотров: 471 | Теги: .NET
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Сообщество
Помощь
Форма входа
Поиск

Студенческий помощник по информатике © 2021
При цитировании материалов данного сайта, обязательна ссылка на источник: ITstudents.ru



>