Описание интерфейса

Настройки файла AssemblyInfo.cs
Назначение наименования плагина:

[assembly: AssemblyTitle(«Наш новый плагин»)]

Определение плагина при загрузке:

[assembly: Guid(«2247ac22-69f8-46f4-99af-650eea2187b3»)]

Определение версии плагина:

[assembly: AssemblyVersion(«1.0.0.0»)]

Определение версии файла:

[assembly: AssemblyFileVersion(«1.0.0.0»)]

Описание методов интерфейса IMainPlugin

Интерфейс служит для начальной загрузки плагина MapEditor GS, в котором осуществляется определение имени Плагина(Name), его идентификационного ключа (GUID), запуск функции инициализации (StartPlugin) и возможной реализации интерфейса для настройки плагина (SettingsForm).

Описание интерфейса public interface IMainPlugin

    public interface IMainPlugin
    {
        /// <summary> Название плагина
        /// </summary>
        string Name { get; }
        /// <summary> Guid плагина
        /// </summary>
        string GUID { get; }
        /// <summary> Основная функция инициализации плагина
        /// </summary>
        /// Параметры в settings файле
        /// Интерфейс работы с базой
        /// Интерфейс работы с окнами
        void StartPlugin(XElement XSettings, IMainApp app, IWorkClass work);
        /// <summary> Получения окна настройки плагина
        /// </summary>
        Forms.IControlSettings SettingsForm { get; }
    }

Свойства Name и GUID

Свойства Name и GUID используются для идентификации плагина и должны всегда иметь реализацию:

string Interfaces.IMainPlugin.Name
        {
            get { return AssemblyClass.GetName(Assembly.GetExecutingAssembly()); }
        }
        string Interfaces.IMainPlugin.GUID
        {
            get { return AssemblyClass.GetGuid(Assembly.GetExecutingAssembly()); }
        }

Функция «AssemblyClass.GetName» считывает с манифеста сборки свойство «AssemblyTitle», функция «AssemblyClass.GetGuid» 
считывает с манифеста сборки свойство «Guid».

Функция «StartPlugin»
void StartPlugin(XElement XSettings, IMainApp app, IWorkClass work);

Функция выполняется сразу после подключения ее к MapEditor GS, и должна содержать функции подключения к интерфейсу.
Также этой функции передаются переменные XSettings, app и work.
Переменные в «StartPlugin»
XSettings
Пример:

<guid-B2AB5A1F-6404-4528-B32B-5E3A002B9C0C isEnable=«true»>
<Port>100/<Port>
<Speed>9600/<Speed>
<guid-B2AB5A1F-6404-4528-B32B-5E3A002B9C0C>
или 
<guid-2247ac22-69f8-46f4-99af-650eea2187b3 isEnable=«true»/>

app
Используется для работы с метаданными, содержит функции получения списка таблиц, ее полей, а также переменная.
app.mapLib
Содержит функции для редактирования визуального интерфейса программы (добавление меню, подмена формы атрибутики).
Свойство «SettingsForm» задает интерфейс окна «Настройки»:

Forms.IControlSettings SettingsForm { get; }