Про плагины
От: Аноним  
Дата: 24.08.07 12:54
Оценка:
Здравствуйте, All.
Трудность вот в чём. У меня к программе подключаются сборки. Используются интерфейсы.
В основном приложении создан некий объект(скажем, GLOBAL_CONFIG) с кучей разнотиповых членов.
Нинкак не могу понять как сделать так, чтоб этот объект(GLOBAL_CONFIG) был виден в подключаемых сборках. Что я должен прописать в интерфейсе? Если для доступа из плагинов к меню приложения я пишу так:
---
System.Windows.Forms.MenuStrip iMainMenu { get; set; }
---
всё работает. Но как только я хочу вписать туда: GLOBAL_CONFIG iConfig {get; set;} нефига не работает.
Хелп.
Re: Про плагины
От: torso Россия  
Дата: 24.08.07 13:05
Оценка: +1
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, All.

А>Трудность вот в чём. У меня к программе подключаются сборки. Используются интерфейсы.
А>В основном приложении создан некий объект(скажем, GLOBAL_CONFIG) с кучей разнотиповых членов.
А>Нинкак не могу понять как сделать так, чтоб этот объект(GLOBAL_CONFIG) был виден в подключаемых сборках. Что я должен прописать в интерфейсе? Если для доступа из плагинов к меню приложения я пишу так:
А>---
А>System.Windows.Forms.MenuStrip iMainMenu { get; set; }
А>---
А>всё работает. Но как только я хочу вписать туда: GLOBAL_CONFIG iConfig {get; set;} нефига не работает.
А>Хелп.

Тебе нужно сделать интерфейс IGlobalConfig, запихать его в отдельную сборку — это будет типа SDK для разработки плугинов.
А в интерфейс плугина добавить метод, типа SetConfig(IGlobalConfig config) и вызывать его в хостовом приложении в момент регистрации плугина, и передавать текущий экземпляр конфига
Re: Про плагины
От: nikov США http://www.linkedin.com/in/nikov
Дата: 24.08.07 13:13
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Но как только я хочу вписать туда: GLOBAL_CONFIG iConfig {get; set;} нефига не работает.


А как именно оно не работает?
Re[2]: Про плагины
От: Aviator  
Дата: 24.08.07 18:04
Оценка:
Здравствуйте, torso, Вы писали:

T>Здравствуйте, Аноним, Вы писали:

T>А в интерфейс плугина добавить метод, типа SetConfig(IGlobalConfig config) и вызывать его в хостовом приложении в момент регистрации плугина, и передавать текущий экземпляр конфига

Я бы сделала IPluginHost, передаваемый плагину в момент инициализации. В этом интерфейсе был бы в частности метод IPluginHost.GetGlobalConfig(). IPluginHost как было сказано выше — в отдельную сборку.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.