Создание подключаемой инфраструктуры Страница 4. Инициализация подключаемых модулей
|
Страница 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) { EditorContext context = new EditorContext(txtText.Text);
plugin.PerformAction(context); txtText.Text= context.CurrentDocumentText; } } ЗаключениеКак видите, обеспечить поддержку подключаемых модулей в своем приложении чрезвычайно просто. Вы только: - Создаете общую библиотеку интерфейсов. - Создаете специальные подключаемые модули, реализовывающие специальные интерфейсы. - Создаете контекстные аргументы для передачи их в подключаемые модули. - Создаете секцию в своем файле конфигурации для размещения имен подключаемых модулей. - Создаете экземпляры подключаемых модулей, используя IConfigurationSectionHandler. - Вызываете ваши подключаемые модули. - Отправляетесь домой и с пользой проводите время подальше от своего компьютера. |