Инструменты пользователя

Инструменты сайта


Боковая панель

developers:tutorial:module

Это старая версия документа.


Создание первого модуля

Создайте и настройте новый проект Visual Studio.

Для создания и подключения модуля к программному комплексу Топоматик Робур необходимо создать следующие элементы:

  • Класс реализующий функциональность модуля
  • Класс отвечающий за инициализацию модуля
  • Файл для подключения к программному комплексу.

Начнем с создания класса, реализующего функциональность модуля. Это должен быть компонент, наследник от Topomatic.ApplicationPlatform.Module. Создайте новый класс компонента и назовите его «Module». Рисунок 10. Создание компонента Откройте окно редактирования кода компонента. Рисунок 11. Перейти к коду компонента Измените код класса, сделайте его наследником от Topomatic.ApplicationPlatform.Module. Также можно убрать его из общей области видимости.

partial class Module : Topomatic.ApplicationPlatform.Module
{
    public Module()
    {
       InitializeComponent();
    }
 
    public Module(IContainer container)
    {
        container.Add(this);
        InitializeComponent();
    }
}

Теперь создадим класс, отвечающий за инициализацию модуля. Этот класс должен быть наследником от абстрактного класса Topomatic.ApplicationPlatform.PluginHost и находится в общей области видимости. У него необходимо реализовать абстрактное свойство PluginName, возвращающее имя вашего плагина, и абстрактную функцию GetModules() возвращающую список типов модулей. В нашем случае мы вернем только один тип - тип нашего компонента.

Создайте новый класс и назовите его «ModulePluginHost». Наследуйте класс от Topomatic.ApplicationPlatform.PluginHost и реализуйте функции как описано выше.

public class ModulePluginHost : Topomatic.ApplicationPlatform.PluginHost
{
    //тут мы возвращаем строку с именем нашего плагина
    public override string PluginName
    {
        get
        {
            return "My first module";
        }
    }
 
    //тут мы возвращаем типы всех модулей, которые хотим подключить, в нашем примере только один тип
    protected override Type[] GetModules()
    {
        return new Type[] { typeof(Module) };
    }
}

Для подключения нашей библиотеки к программному комплексу нам необходим файл Имя нашей библиотеки.AddIn.

Здесь и далее замените Имя нашей библиотеки, на имя вашего проекта, в примере это tutorial1

Это файл в формате XML который содержит инструкции для программного комплекса, позволяющие загрузить и подключить модули, содержащиеся в нашей сборке. Создайте новый файл и назовите его Имя нашей библиотеки.AddIn. Для этого выберите в контекстном меню проекта «Создать элемент…». Рисунок 12. Создание элемента В диалоге добавления нового элемента выберите XML-файл. Рисунок 13. Выбор XML файла Выберите созданный файл в структуре проекта, и назначьте свойству «Копировать в выходной каталог» значение «Всегда копировать», чтобы всегда копировать этот файл в каталог куда Вы собираете Вашу библиотеку. Рисунок 14. Копирование в выходной каталог Заполните созданный файл, как показано ниже.

<?xml version="1.0" encoding="utf-8" ?> 
<Extensibility FileVersion="1">
  <Addin>
    <FriendlyName>Тестовый модуль урок 1</FriendlyName>
    <Description></Description>
    <TargetPlaform Name="" Version="15.0"/>
    <Assembly Name="Имя нашей библиотеки.dll" FullClassName="Имя нашей библиотеки.ModulePluginHost" />
  </Addin>
</Extensibility>

Тэги <FriendlyName> и <Description> это имя и описание плагина, которые будут показаны пользователю. Тэг <TargetPlaform> указывает версию платформы для которой собирается модуль, на текущий момент версия 15. Тэг <Assembly> отвечает за подключение сборки, в атрибуте Name указывается имя библиотеки, а в атрибут FullClassName - полное имя класса, наследника от PluginHost, включая его пространство имён. Если необходимо подключить несколько библиотек, можно указать несколько тэгов <Assembly>.

Выполнив указанные выше действия и скомпилировав проект мы получим полностью работоспособный плагин, подключающий наш модуль к программному комплексу Топоматик Робур.

Сейчас наш модуль полностью пустой. Давайте добавим к нему немного функциональности. Для этого вернемся к коду класса «Module» и перекроем в нём метод OnCreateApplication как показано ниже.

    //этот метод будет вызван в момент старта программного комплекса
    protected override void OnCreateApplication(object sender, CreateApplicationEventArgs e)
    {
        base.OnCreateApplication(sender, e);
        //вызов этого метода покажет стандартный диалог с сообщением
        MessageDlg.Show("Привет Робур");
    }

Этот метод будет вызван при старте программного комплекса, а мы покажем там сообщение, в котором будет написано «Привет Робур».

Для того чтобы использовать методы статического класса MessageDlg и класс CreateApplicationEventArgs необходимо добавить нужные пространства имен в секцию using. Visual Studio позволяет легко сделать это, нажав правой клавишей на имени класса и выбрав добавление директивы using.

Теперь мы можем запустить наш проект. Он автоматически соберет нашу сборку в каталог с программным комплексом, скопирует туда же файл AddIn и запустит исполняемый файл программного комплекса, при старте которого мы увидим наше сообщение. Рисунок 15. Сообщение - Привет Робур

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

Архив с кодом примера

developers/tutorial/module.1539454939.txt.gz · Последние изменения: 2021/07/22 14:28 (внешнее изменение)