Любая библиотека — это сервер, предоставляющий свои ресурсы клиентам. Создадим клиентское приложение, выполняющее те же функции, что и приложение из раздела «Виртуальные методы» (см. с. 178), но с использованием библиотеки Monsterl_ib.dll. Для того чтобы компилятор мог ее обнаружить, необходимо после создания проекта (как обычно, это — консольное приложение) подключить ссылку на библиотеку с помощью команды Project ► Add Reference (Добавить ссылку). Для поиска каталога, содержащего библиотеку, следует использовать кнопку Browse. После подключения библиотеки можно пользоваться ее открытыми элементами таким же образом, как если бы они были описаны в том же модуле. Текст приложения приведен в листинге 12.2.
Листинг 12.2. Клиентское приложение
using System;
namespace ConsoleApplication1
{
using MonsterLib;
class Class1
{
static void Main()
{
const int n = 3;
Monster[] stado = new Monster[n];
stado[0] = new Monster("Monia");
stado[1] = new Monster("Monk");
stado[2] = new Daemon("Dimon", 3);
foreach (Monster elem in stado)
elem.Passport();
for (int i = 0; i < n; ++i)
stado[i].Ammo = 0; Console.WriteLine();
foreach (Monster elem in stado)
|
|
elem.Passport();
}
}
}
Результаты работы программы совпадают с полученными в листинге 8.3. Анализ каталога...\bin\Debug показывает, что среда создала в нем копию библиотеки Monsterl_ib.dll, то есть поместила библиотеку в тот же каталог, что и исполняемый файл. Если скопировать эти два файла в другое место, программа не потеряет своей работоспособности — главное, чтобы оба файла находились в одном каталоге.
Допускается также, чтобы частные сборки находились в подкаталогах основного каталога приложения.
ПРИМЕЧАНИЕ
Преимущество.NET состоит в том, что благодаря стандартным соглашениям можно использовать библиотеки независимо от языка, на котором они были написаны. Таким образом, можно было бы написать клиентское приложение, например, на языке VB.NET.