Изучение сборки .NET Framework с помощью утилит ildasm. Exe и Reflector
Утилита ildasm.exe (Intermediate Language Disassembler – дизассемблер IL), поставляемая в составе пакета .NET Framework 4 SDK, позволяет загружать любую сборку .NET и изучать ее содержимое, в том числе ассоциируемый с ней манифест, IL-код и метаданные типов (Рис. 4).
Рис. 4.
Помимо содержащихся в сборке пространств имен, типов и членов, утилита ildasm.exe позволяет просматривать IL-инструкции, которые лежат в основе каждого конкретного члена. Например, в результате двойного щелчка на методе открывается отдельное окно с IL-кодом, лежащим в основе этого метода (Рис. 5.).
Рис. 5.
Для просмотра метаданных типов, которые содержатся в загруженной в текущий момент сборке, необходимо нажать комбинацию клавиш <Ctrl+M>. Чтобы просмотреть содержимое манифеста сборки, необходимо дважды щелкнуть на значке MANIFEST (Рис. 6.).
Рис. 6.
Хотя утилита ildasm.exe и применяется очень часто для просмотра деталей двоичного файла .NET, одним из ее недостатков является то, что она позволяет просматривать только лежащий в основе IL-код, но не реализацию сборки с использованием предпочитаемого управляемого языка. Существует множество других утилит для просмотра и декомпиляции объектов .NET, в том числе и популярная утилита Reflector[1] (Рис. 7).
Рис. 7.
3. Урок 3: Написание приложений на C#
Урок описывает структуру простого приложения C#, содержащего один или несколько классов. Урок описывает, как ссылаться на функциональность, определенную в классах в других сборках и библиотеках, в частности, как можно использовать класс Console библиотеки классов .NET Framework для выполнения простых операций ввода-вывода. В уроке объясняется, как и почему рекомендуется добавлять комментарии к приложениям.
Классы и пространства имен
Visual C# является объектно-ориентированным языком, использующим классы и пространства имен для разделения приложения .NET Framework на модули, как на логические компоненты.
Класс по существу чертеж, определяющий характеристики сущности, и включает в себя свойства, определяющие типы данных, которые может содержать объект, и методы, описывающие поведение объекта. Пространство имен представляет собой логический набор классов. Классы хранятся в сборках, а пространство имен является средством для устранения неоднозначности классов, которые могут иметь одинаковые имена в различных сборках. Например, пространство имен System.IO включает в себя следующие классы, которые позволяют управлять файловой системой Windows. Однако, можно создать классы с таким же названием и в собственном пространстве имен:
· File
· FileInfo
· Directory
· DirectoryInfo
· Path
Для использования класса, определенного в .NET Framework, следует выполнить следующие задачи:
1. Добавить ссылку на сборку, которая содержит скомпилированный код для класса.
2. Добавить пространство имен, которое содержит класс, в область видимости.
При разработке приложения .NET Framework для записи текста в новый файл в файловой системе Windows, импортируется пространство имен System.IO, для этого используется ключевое слово using[2], а затем используется метод WriteAllText класса File.
using System;
using System.IO;
using System.Collections;