C #, как использовать внешний файл в качестве дополнительного модуля? - PullRequest
0 голосов
/ 23 мая 2011

Вот история моего вопроса:

У меня есть приложение Windows .Net (C #). Это приложение содержит панель, выпадающий список и кнопку.

Рядом с моим исполняемым файлом (winapp ... exe) есть папка с именем plugins, в которой я хочу, чтобы она содержала мои файлы пользовательских программных модулей. Как (add2digit.moduleextention, add3digit.moduleextention, addNdigit.moduleextention, ...). Список этих файлов будет показан в моем раскрывающемся списке. Все эти файлы пользовательских модулей должны быть написаны на C #, и все они должны реализовывать интерфейс, содержащий один метод {panel :: GetGUI ()};

Когда я изменяю выпадающий список, я хочу загрузить выбранный графический модуль модуля в панель, используя метод GetUI (). Таким образом, мне не нужно перекомпилировать мой код, если я разработал дополнительные модули. Пожалуйста, дайте мне несколько ключевых слов или решений, которые помогут мне разобраться в этой проблеме.

1 Ответ

2 голосов
/ 23 мая 2011

Вам нужно будет создать Interface с GetUI() и другими объявленными в нем методами и реализовать это в плагинах, тогда в вашем основном приложении вы должны сделать что-то вроде этого:

using System.Reflection;
// ...
Assembly assembly = Assembly.LoadFile(file);
yourInterface plugin = (yourInterface)Activator.CreateInstance(Type.GetType(assembly));
// ...
plugin.GetUI(); // or whatever
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...