Создание подключаемой инфраструктуры - Инициализация подключаемых модулей
ОГЛАВЛЕНИЕ
Страница 4 из 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.
- Вызываете ваши подключаемые модули.
- Отправляетесь домой и с пользой проводите время подальше от своего компьютера.