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