C#. Создание библиотек (сборок)

Создание библиотек

Рано или поздно, вы придете к мысли об объединении своих собственных наработок в единый пакет (ну или в несколько пакетов), чтобы созданные один раз классы можно было использовать в разных программах. В C# такие пакеты называют сборками. Сборки могут быть оформлены в виде DLL, но не так называемых нативных DLL, а специализированных, .NET DLL (часто говорят, «нэтовских» DLL). Вот о создании таких DLL я и расскажу в этой статье.

Первым делом, мы создадим новый проект в Visual Studio (о том, как скачать и установить MS Visual Studio я рассказывал в уроке № 2 базового курса C#).

Для этого, выбираем пункт главного меню «Файл — Создать — Проект», как показано на рисунке ниже.

Создание нового проекта в MS Visual Studio

Создание нового проекта в MS Visual Studio

После чего, откроется окно «Создание проекта», в котором нужно выбрать в левой части окна «Шаблоны — Visual C# — Windows», в главной рабоче области выбрать пункт «Библиотека классов», а в нижней части окна, ввести имя библиотеки, как показано на рисунке ниже (ну и желательно, указать расположение, создаваемого проекта).

Выбор типа создаваемого проекта

Выбор типа создаваемого проекта

После указания всех параметров нужно нажать на кнопку «OK» и дождаться создания проекта. После успешного создания проекта мы увидим примерно следующее окно (я отметил важные участки на изображении):

Созданный проект библиотеки

Созданный проект библиотеки

Мы видим, что у нас есть класс с именем «Class1» (это видно в обозревателе решений, или Solution Explorer в английской версии программы). Давайте переименуем его, присвоим ему осмысленное название. А называться он будет «INIManager», в библиотеку мы поместим класс, из статьи Работа с INI-файлами в C#, чтобы не придумывать что-то на ходу. Так вот, чтобы переименовать классы, нам нужно навести на его имя в обозревателе решений мышь и вызвать контекстное меню, в котором выбрать пункт «Переименовать», как показано на рисунке ниже.

Переименование класса

Переименование класса

После чего, в области редактирования (которая автоматически станет активной, ввести «INIManager» и нажать на клавишу Enter), в результате появится сообщение с запросом подтверждения примерно следующего вида:

Подтверждения переименования класса

Подтверждения переименования класса

В котором нужно нажать на кнопку «Да», таким образом, будет переименован и класс и файл исходного кода, в котором он содержится.

А теперь, вставим в класс следующий код:

//Конструктор, принимающий путь к INI-файлу
public INIManager(string aPath)
{
    path = aPath;
}
 
//Конструктор без аргументов (путь к INI-файлу нужно будет задать отдельно)
public INIManager() : this("") { }
 
//Возвращает значение из INI-файла (по указанным секции и ключу) 
public string GetPrivateString(string aSection, string aKey)
{
    //Для получения значения
    StringBuilder buffer = new StringBuilder(SIZE);
 
    //Получить значение в buffer
    GetPrivateString(aSection, aKey, null, buffer, SIZE, path);
 
    //Вернуть полученное значение
    return buffer.ToString();
}
 
//Пишет значение в INI-файл (по указанным секции и ключу) 
public void WritePrivateString(string aSection, string aKey, string aValue)
{
    //Записать значение в INI-файл
    WritePrivateString(aSection, aKey, aValue, path);
}
 
//Возвращает или устанавливает путь к INI файлу
public string Path { get { return path; } set { path = value; } }
 
//Поля класса
private const int SIZE = 1024; //Максимальный размер (для чтения значения из файла)
private string path = null; //Для хранения пути к INI-файлу
 
//Импорт функции GetPrivateProfileString (для чтения значений) из библиотеки kernel32.dll
[DllImport("kernel32.dll", EntryPoint = "GetPrivateProfileString")]
private static extern int GetPrivateString(string section, string key, string def, StringBuilder buffer, int size, string path);
 
//Импорт функции WritePrivateProfileString (для записи значений) из библиотеки kernel32.dll
[DllImport("kernel32.dll", EntryPoint = "WritePrivateProfileString")]
private static extern int WritePrivateString(string section, string key, string str, string path);

И в самом начале файла с классом, в блоке директив using, подключить пространство имен «System.Runtime.InteropServices», как показано в фрагменте кода ниже (добавленная строка отмечена):

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;

Всё, теперь можно собрать проект («Сборка — Собрать решение» в главном меню русской версии Visual Studion). Только запускать проект не нужно, всё равно это бессмысленно, DLL так просто не запустить… Вместо этого, давайте найдем созданную DLL на диске своего ПК. Для этого нужно перейти в папку, в которой мы создавали проект (путь мы указывали при создании проекта). В моем случае, это «D:\Программирование\Projects\FirstDLL». А уже в этой папке перейти по пути «FirstDLL\bin\Debug», и в папке «Debug» будет файл «FirstDLL.dll». Который нужно скопировать и сохранить в удобное место, чтобы потом подключить к другому проекту. Как это делать, я расскажу в одной из следующих статей. А эта заканчивается, первую библиотеку мы создали!

Добавить комментарий