Создание и использование одномодульных компоновочных блоков

Создание и использование одномодульных компоновочных блоков

Чтобы инициировать процесс понимания компоновочных блоков .NET, мы с вами создадим одномодульный компоновочный блок *.dll (с именем CarLibrary), содержащий небольшой набор открытых типов. Чтобы построить библиотеку программного кода в Visual Studio 2005, выберите рабочую область Class Library (Библиотека классов) в окне Создания проектов (рис. 11.5).

Процесс разработки нашей библиотеки мы начнем с создания абстрактного базового класса Car (автомобиль), определяющего ряд защищенных членов-данных, доступных через пользовательские свойства.

Рис. 11.5. Создание библиотеки программного кода C#

Этот класс имеет один абстрактный метод TurboBoost(), в котором используется пользовательский перечень (EngineState), представляющий текущее состояние двигателя автомобиля.

using System;

namespace CarLibrary {

 // Представляет состояние двигателя.

 public enum EngineState { engineAlive, engineDead }

 // Абстрактный базовый класс в данной иерархии.

 public abstract class Car {

  protected string petName;

  protected short currSpeed;

  protected short maxSpeed;

  protected EngineState egnState = EngineState.engineAlive;

  public abstract void TurboBoost();

  public Car(){}

  public Car(string name, short max, short curr) {

   petName = name; maxSpeed = max; currSpeed = curr;

  }

  public string PetName {

   get { return petName; }

   set { petName = value; }

  }

  public short CurrSpeed {

   get { return currSpeed; }

   set { currSpeed = value; }

  }

  public short MaxSpeed { get { return maxSpeed; } }

  public EngineState EngineState { get { return egnState; } }

 }

}

Теперь предположим, что у вас есть два прямых "наследника" типа Car, имена которых MiniVan (минивэн) и SportsCar (спортивный автомобиль). Каждый из них подходящим образом переопределяет абстрактный метод TurboBoost().

using System;

using System.Windows.Forms;

namespace CarLibrary {

 public class SportsCar: Car {

  public SportsCar(){}

  public SportsCar(string name, short max, short curr): base(name, max, curr) {}

  public override void TurboBoost() {

   MessageBox.Show("Скорость черепахи!", "Побыстрее бы…");

  }

 }

 public class MiniVan: Car {

  public MiniVan(){}

  public MiniVan(string name, short max, short curr): base(name, max, curr){}

  public override void TurboBoost() {

   // Минивэн с турбонаддувом встретишь не часто!

   egnState = EngineState.engineDead;

   MessageBox.Show("Звoните в автосервис!", "Машина сломалась…");

  }

 }

}

Обратите внимание на то, что каждый из подклассов реализует TurboBoost() с помощью класса MessageBox, определенного в компоновочном блоке System. Windows.Forms.dll. Чтобы наш компоновочный блок мог использовать типы, определенные в рамках этого внешнего компоновочного блока, для проекта CarLibrary нужно указать ссылку на соответствующий двоичный файл в диалоговом окне Add Reference (Добавление ссылки), доступном в Visual Studio 2005 при выборе Project?Add Reference из меню (рис. 11.6).

Рис. 11.6. Здесь добавляются ссылки на внешние компоновочные блоки .NET

Очень важно понимать, что в списке компоновочных блоков диалогового окна Add Reference могут быть представлены не все компоновочные блоки .NET, имеющиеся на вашей машине. Диалоговое окно Add Reference не отображает созданные вами пользовательские компоновочные блоки и не отображает компоновочные блоки, размещенные в GAC. Это диалоговое окно предлагает список общих компоновочных блоков, на отображение которых запрограммирована система Visual Studio 2005. При построении приложения, для которого требуется компоновочный блок, не представленный в списке диалогового окна Add Reference, вам придется перейти на вкладку Browse (Просмотр) и вручную найти необходимый файл *.dll или *.exe.

Замечание. Можно сделать так, чтобы пользовательские компоновочные блоки тоже появлялись в списке диалогового окна Add Reference, если установить их копии в папку C:Program FilesMicrosoft Visual Studio 8Common7lDEPublicAssemblies, но большого смысла в этом нет. На вкладке Recent (Недавние ссылки) предлагается список компоновочных блоков, на которые вы недавно ссылались.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Просмотр метаданных компоновочных блоков

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

Просмотр метаданных компоновочных блоков Наконец, если вы захотите просмотреть содержимое манифеста компоновочного блока, то вам нужно двойным щелчком открыть пиктограмму MANIFEST (рис. 1.9). Рис. 1.9. Двойной щелчок на этой строке покажет манифест компоновочного блокаНе


Ссылки на множество внешних компоновочных блоков

Из книги ArchiCAD 11 автора Днепров Александр Г

Ссылки на множество внешних компоновочных блоков В связи с рассматриваемой темой возникает следующий вопрос: "Что делать, если при использовании csc.exe нужно сослаться на множество внешних компоновочных блоков?" Просто перечислить все компоновочные блоки, используя в


Обзор компоновочных блоков

Из книги автора

Обзор компоновочных блоков Утилита Assembly Scout [Разведчик компоновочных блоков), доступная из меню View, предлагает обзор компоновочных блоков, на которые имеются ссылки в проекте. Это средство предлагает информацию в двух панелях, Левая панель предлагает дерево просмотра,


Роль компоновочных блоков .NET

Из книги автора

Роль компоновочных блоков .NET Приложения .NET строятся путем связывания произвольного числа компоновочных блоков. С точки зрения упрощенного подхода компоновочный блок является двоичным файлом, включающим свое описание, снабженным номером версии и поддерживаемым средой


Создание и использование многомодульных компоновочных блоков

Из книги автора

Создание и использование многомодульных компоновочных блоков Теперь, когда вы научились строить и использовать одномодульные компоновочные блоки, рассмотрим процесс создания многомодульных компоновочных блоков, Напомним, что многомодульный компоновочный блок – это


Идентификация приватных компоновочных блоков

Из книги автора

Идентификация приватных компоновочных блоков Полный идентификатор приватного компоновочного блока состоит из понятного имени компоновочного блока и числового номера его версии, которые должны быть записаны в манифест компоновочного блока. Понятное имя (friendly name) – это


Конфигурация приватных компоновочных блоков

Из книги автора

Конфигурация приватных компоновочных блоков Конечно, можно инсталлировать .NET-приложение с помощью простого копирования всех требуемых компоновочных блоков в одну папку на жестком диске пользователя, но вы, скорее всего, предпочтете определить ряд подкаталогов для


Установка и удаление общедоступных компоновочных блоков

Из книги автора

Установка и удаление общедоступных компоновочных блоков Заключительным шагом будет установка (теперь уже строго именованной) библиотеки CarLibrary.dll в структуру GAC. Проще всего установить общедоступный компоновочный блок в структуру GAС, перетащив файл компоновочного блока


Использование общедоступных компоновочных блоков

Из книги автора

Использование общедоступных компоновочных блоков При построении приложений, использующих общедоступные компоновочные блоки, единственное отличие от случая использования приватного компоновочного блока заключается в том, как вы ссылаетесь на соответствующую


Конфигурация общедоступных компоновочных блоков

Из книги автора

Конфигурация общедоступных компоновочных блоков Подобно приватным компоновочным блокам, открытый компоновочный блок можно конфигурировать с помощью файла *.config клиента. Конечно, ввиду того, что открытые компоновочные блоки находятся по известному адресу (в структуре


Файлы политики публикации компоновочных блоков

Из книги автора

Файлы политики публикации компоновочных блоков Следующий вопрос, который мы должны рассмотреть в рамках обсуждения возможностей конфигурации, это роль политики публикации компоновочных блоков. Вы только что убедились, что с помощью файлов *.config можно выполнить


Общая схема связей компоновочных блоков

Из книги автора

Общая схема связей компоновочных блоков Теперь, когда мы с вами изучили подробности того, как среда CLR осуществляет поиск запрошенных компоновочных блоков, вспомните о том, что простое на самом деле должно быть простым. Многие (если не все) ваши .NET-приложения будут иметь


Отображение общедоступных компоновочных блоков

Из книги автора

Отображение общедоступных компоновочных блоков Как вы можете догадываться, метод Assembly.Load() является перегруженным. Один из вариантов метода Assembly.Load() позволяет указать значение параметра culture (для локализованных компоновочных блоков), а также номер версии и значение


ГЛАВА 15. CIL и роль динамических компоновочных блоков

Из книги автора

ГЛАВА 15. CIL и роль динамических компоновочных блоков В этой главе ставится две задачи. В первой половине главы будет рассмотрен синтаксис и семантика языка CIL (Common Intermediate Language – общий промежуточный язык) намного более подробно, чем в предыдущих главах. Честно говоря, при


Создание текстовых блоков

Из книги автора

Создание текстовых блоков Для перехода в режим ввода и редактирования текста щелкните на кнопке Text (Текст) в разделе Document (Документ) палитры ToolBox (Палитра инструментов). Элементы управления этим инструментом появятся на палитре Info Box (Информационная палитра) (рис. 3.35). Рис.