Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
developers:tutorial:module [2018/12/23 18:28] vasya |
developers:tutorial:module [2022/03/15 19:10] (текущий) proxor |
||
---|---|---|---|
Строка 8: | Строка 8: | ||
* Файл для подключения к программному комплексу. | * Файл для подключения к программному комплексу. | ||
- | Начнем с создания класса, реализующего функциональность модуля. Это должен быть наследник от Topomatic.ApplicationPlatform.Plugins.PluginInitializator. Создайте новый класс компонента и назовите его "Module". | + | Начнем с создания класса, реализующего функциональность модуля. Это должен быть наследник от [[developers:references:topomatic.applicationplatform.plugins.plugininitializator|PluginInitializator]]. Создайте новый класс компонента и назовите его "Module". |
{{ :developers:tutorial:module:add_component.png?direct&400 |Рисунок 10. Создание компонента}} | {{ :developers:tutorial:module:add_component.png?direct&400 |Рисунок 10. Создание компонента}} | ||
Откройте окно редактирования кода компонента. | Откройте окно редактирования кода компонента. | ||
{{ :developers:tutorial:module:goto_code.png?direct&400 |Рисунок 11. Перейти к коду компонента}} | {{ :developers:tutorial:module:goto_code.png?direct&400 |Рисунок 11. Перейти к коду компонента}} | ||
- | Измените код класса, сделайте его наследником от Topomatic.ApplicationPlatform.Plugins.PluginInitializator. Также можно убрать его из общей области видимости. | + | Измените код класса, сделайте его наследником от [[developers:references:topomatic.applicationplatform.plugins.plugininitializator|PluginInitializator]]. Также можно убрать его из общей области видимости. |
<code csharp> | <code csharp> | ||
partial class Module : Topomatic.ApplicationPlatform.Plugins.PluginInitializator | partial class Module : Topomatic.ApplicationPlatform.Plugins.PluginInitializator | ||
Строка 20: | Строка 20: | ||
</code> | </code> | ||
- | Теперь создадим класс, отвечающий за инициализацию модуля. Этот класс должен быть наследником от абстрактного класса Topomatic.ApplicationPlatform.Plugins.PluginHostInitializator и находится в общей области видимости. У него необходимо реализовать абстрактную функцию GetTypes() возвращающую список типов модулей. В нашем случае мы вернем только один тип - тип нашего класса Module. | + | Теперь создадим класс, отвечающий за инициализацию модуля. Этот класс должен быть наследником от абстрактного класса [[developers:references:topomatic.applicationplatform.plugins.pluginhostinitializator|PluginHostInitializator]] и находится в общей области видимости. У него необходимо реализовать абстрактную функцию GetTypes() возвращающую список типов модулей. В нашем случае мы вернем только один тип - тип нашего класса Module. |
- | Создайте новый класс и назовите его "ModulePluginHost". Наследуйте класс от Topomatic.ApplicationPlatform.Plugins.PluginHostInitializator и реализуйте функции как описано выше. | + | Создайте новый класс и назовите его "ModulePluginHost". Наследуйте класс от [[developers:references:topomatic.applicationplatform.plugins.pluginhostinitializator|PluginHostInitializator]] и реализуйте функции как описано выше. |
<code csharp> | <code csharp> | ||
public class ModulePluginHost : Topomatic.ApplicationPlatform.Plugins.PluginHostInitializator | public class ModulePluginHost : Topomatic.ApplicationPlatform.Plugins.PluginHostInitializator | ||
Строка 35: | Строка 35: | ||
Для подключения нашей библиотеки к программному комплексу нам необходим файл "Имя нашей библиотеки".plugin. | Для подключения нашей библиотеки к программному комплексу нам необходим файл "Имя нашей библиотеки".plugin. | ||
<note>Здесь и далее замените **"Имя нашей библиотеки"**, на имя вашего проекта, в примере это **tutorial1**</note> | <note>Здесь и далее замените **"Имя нашей библиотеки"**, на имя вашего проекта, в примере это **tutorial1**</note> | ||
- | Это файл в формате [[https://ru.wikipedia.org/wiki/JSON|JSON]] который содержит инструкции для программного комплекса, позволяющие загрузить и подключить модули, содержащиеся в нашей сборке. | + | Это [[developers:references:core.plugin|файл]], который содержит инструкции для программного комплекса, позволяющие загрузить и подключить модули, содержащиеся в нашей сборке. |
Создайте новый файл и назовите его "Имя нашей библиотеки".plugin. | Создайте новый файл и назовите его "Имя нашей библиотеки".plugin. | ||
Для этого выберите в контекстном меню проекта "Создать элемент...". | Для этого выберите в контекстном меню проекта "Создать элемент...". | ||
Строка 53: | Строка 53: | ||
} | } | ||
</code> | </code> | ||
- | Элемент ''assemblies'' определяет какие сборки будут подключены к программному комплексу и может содержать один или несколько элементов ''assembly''. В нашем случае этот элемент один и представляет из себя строку, содержащую, через запятую имя сборки и полное имя класса, наследника от PluginHostInitializator, включая его пространство имен. | + | Элемент ''assemblies'' определяет какие сборки будут подключены к программному комплексу и может содержать один или несколько элементов ''assembly''. В нашем случае этот элемент один и представляет из себя строку, содержащую, через запятую имя сборки и полное имя класса, наследника от [[developers:references:topomatic.applicationplatform.plugins.pluginhostinitializator|PluginHostInitializator]], включая его пространство имен. |
Выполнив указанные выше действия и скомпилировав проект мы получим полностью работоспособный плагин, подключающий наш модуль к программному комплексу Топоматик Робур. | Выполнив указанные выше действия и скомпилировав проект мы получим полностью работоспособный плагин, подключающий наш модуль к программному комплексу Топоматик Робур. | ||
- | Сейчас наш модуль полностью пустой. Давайте добавим к нему немного функциональности. Для этого вернемся к коду класса "ModulePluginHost" и перекроем в нём метод Initializeкак показано ниже. | + | Сейчас наш модуль полностью пустой. Давайте добавим к нему немного функциональности. Для этого вернемся к коду класса "ModulePluginHost" и перекроем в нём метод [[developers:references:topomatic.applicationplatform.plugins.plugininitializator.initialize|Initialize]] как показано ниже. |
<code csharp> | <code csharp> | ||
//этот метод будет вызван в момент старта программного комплекса | //этот метод будет вызван в момент старта программного комплекса | ||
Строка 76: | Строка 76: | ||
{{ :developers:tutorial:module:hello.png?direct&400 |Рисунок 15. Сообщение - Привет Робур}} | {{ :developers:tutorial:module:hello.png?direct&400 |Рисунок 15. Сообщение - Привет Робур}} | ||
- | <note>Исходный код примера, вы можете скачать используя эту ссылку | + | <note>[[developers:tutorial:tutorialcode|Исходный код]] примера расположен в проекте **"tutorial1"**.</note> |
- | + | ||
- | {{ :developers:tutorial:module:tutorial1.zip |Архив с кодом примера}}</note> | + | |