Создание подключаемой инфраструктуры
Страница 4. Инициализация подключаемых модулей


 

Инициализация подключаемых модулей

Сделав все это, вы можете использовать подключаемые модули. Однако кое-что еще мы пропустили. Помните, что IPlugin.PerformAction() требует аргумент типа IPluginContext, в котором находятся все необходимые для работы подключаемого модуля данные. вы реализуете простой класс, реализовывающий этот интерфейс, который вы посылаете в метод PerformAction() всякий раз при вызове подключаемого модуля. Вот код класса:
public interface IPluginContext
{
                         string CurrentDocumentText{get;set;}
}

public class EditorContext:IPluginContext
{
                         private string m_CurrentText= string.Empty;
                         public EditorContext(string CurrentEditorText)
     {
      m_CurrentText = CurrentEditorText;
     }

                         public string CurrentDocumentText
     {
                                                             get{return m_CurrentText;}
                                                             set{m_CurrentText = value;}
     }
}

Когда этот класс готов, вы можете просто осуществлять операции на текущим текстом редактора:
private void ExecutePlugin(IPlugin plugin)
{
                         //создаем объект 'context' для передачи в подключаемый модуль

   EditorContext context = new EditorContext(txtText.Text);

                         //Подключаемый модуль изменяет свойство 'Text' объекта 'context'

     plugin.PerformAction(context);
   txtText.Text= context.CurrentDocumentText;
     }
}

Заключение

Как видите, обеспечить поддержку подключаемых модулей в своем приложении чрезвычайно просто. Вы только:
- Создаете общую библиотеку интерфейсов.
- Создаете специальные подключаемые модули, реализовывающие специальные интерфейсы.
- Создаете контекстные аргументы для передачи их в подключаемые модули.
- Создаете секцию в своем файле конфигурации для размещения имен подключаемых модулей.
- Создаете экземпляры подключаемых модулей, используя IConfigurationSectionHandler.
- Вызываете ваши подключаемые модули.
- Отправляетесь домой и с пользой проводите время подальше от своего компьютера.
 
« Предыдущая статья