Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4 сем Инфа готово.docx
Скачиваний:
24
Добавлен:
04.06.2015
Размер:
255.66 Кб
Скачать

Вопрос 1 – ilasm,ildasm,Reflecrion, устройство сборок

•Ассемблер MSIL (ilasm.exe).

Позволяет превратить текстовый файл с кодом на MSIL в PE-файл (EXE или DLL), который будет выполняться при наличии совместимой версии .NET Framework.

•ДизассемблерMSIL (ildasm.exe). Используется для дизассемблирования и просмотра MSIL-кода, содержащегося в PE-файле.

Дисассемблер промежуточного языка Microsoft ILDASM (Microsoft Intermediate Language Disassembler) может отображать метаданные и инструкции языка MSIL, связанные с соответствующим .NET-кодом. Дисассемблер ILDASM является очень полезной утилитой, которая используется при отладке приложений. Он позволяет более глубоко понять инфраструктуру платформы .NET. Кроме того, дисассемблер промежуточного языка Microsoft ILDASM можно использовать для изучения кода библиотеки классов .NET Framework [Дисассемблер ILDASM можно найти в меню Tools (Сервис) Visual Studio.NET. Одна из таких утилит - ILDASM, входящая в состав Microsoft .NET Framework. Данная утилита может использоваться не только для просмотра метаданных, но и для изучения кода на промежуточном языке (IL) в том или ином файле (в файле с расширением .EXE или .DLL,

Отражение (reflection) — это средство С#, которое позволяет получить информацию о типе. Термин отражение произошел от характера процесса: объект класса Туре воспроизводит, или отражает, базовый тип, который он представляет. Для получения интересующей вас информации вы "задаете вопросы" объекту класса Туре, а он возвращает (отражает) для вас информацию, связанную с этим типом. Отражение — мощный механизм, позволяющий узнать характеристики типа, точное имя которого становится известным только во время выполнения программы, и соответствующим образом использовать их. Многие классы, которые поддерживают средство отражения, являются частью интерфейса .NET Reflection API, который определен в пространстве имен System.Reflection. Таким образом, в программы, которые используют средство отражения, обычно включается следующая инструкция: using System.Reflection;

.NET Reflector — бесплатная утилита для Microsoft .NET, комбинирующая браузер классов, статический анализатор и декомпилятор, изначально написанная Lutz Roeder.

Программа может использоваться для навигации, поиска и анализа содержимого .NET-компонентов, а также сборок и переводить двоичные данные в форму, пригодную для чтения человеком. Reflector позволяет производить декомпиляцию .NET-сборок на языки C#, Visual Basic .NET и MSIL. Reflector также включает дерево вызовов (англ. Call Tree), которое может использоваться для навигации вглубь IL-методов с целью определения, какие методы они вызывают. Программа отображает метаданные, ресурсы и XML-документацию. .NET Reflector может быть использован .NET-разработчиками для понимания внутренней работы библиотек кода, для наглядного отображения различий между двумя версиями сборки, и того, как различные части .NET-приложения взаимодействуют друг с другом..NET Reflector может использоваться для нахождения мест, имеющих проблемы с производительностью и поиска багов. Он также может быть использован для поиска зависимостей сборки. Программа может быть использована для эффективной конвертации кода между C# и VB.NET.

Сборка (assembly) - это полностью самодостаточный и, скорее, логический, нежели физический элемент. Это значит, что он может быть сохранен в более чем одном файле (хотя динамические сборки хранятся в памяти, а вовсе не в файлах). Если сборка хранится в более чем одном файле, то должны быть один главный файл, содержащий точку входа и описывающий остальные файлы. Важное свойство сборок состоит в том, что они содержат метаданные, описывающие типы и методы, определенные в ее коде. Помимо этого сборка хранит в себе метаданные описывающие ее саму. Эти метаданные, хранимые в области манифеста, позволяют выполнить проверку номера версии сборки и ее целостность. Манифест - часть сборки, декларирующая метаданные , то есть описывающая сборку и параметры для ее использования. Если сборка состоит из одного файла, манифест встраивается в PE (portable executable) код, формируя однофайловую сборку. Если же сборка не ограничена одним фалом, то вы можете как включить манифест в один из файлов с PE кодом, так и разместить его в отдельном файле.Среда выполнения выполняет программный код, только если с ним ассоциировани манифест. Сборка может иметь только одну точку входа (Main, WinMain, DllMain). Сборка представляет собой коллекцию из одного или более файлов.Такие сборки называются статическими сборками, поскольку они хранятся на диске. Динамические сборки создаются во время выполнения программы и на диске обычно не сохраняются.

C MSDN :

Сборки являются структурными элементами приложений .NET Framework; они составляют основную единицу развертывания, управления версиями, повторного использования, областей действия активации и разрешений безопасности. Сборка представляет собой коллекцию типов и ресурсов, собранных для совместной работы и образующих логическую функциональную единицу. Сборка предоставляет среде CLR сведения, необходимые для распознавания реализаций типов. Для среды выполнения тип не существует вне контекста сборки.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]