Как во время выполнения ссылки "плагин" ссылаться на dll
Боюсь, это слишком широкий вопрос. Но я до сих пор не знаю, как начать эту работу, так что даже подсказка поможет, так как ничего не вышло из поиска в Google...
Всякий раз, когда я связываю ссылку, я добавляю ее перед созданием. Что мне нужно, так это уметь добавлять любые ссылки, добавленные в каталог. Это позволило бы мне поместить dll в dir и добавить его ТОЛЬКО В РАБОТЕ, если эта dll присутствует.
Так сказать
- что ничего не добавляется при запуске ---> никаких дополнительных функций.
- Я добавляю 1.dll ----> Должны быть добавлены функции, присутствующие в 1.dll
- Я добавляю 2.dll ----> Должны быть добавлены функции, присутствующие в 2.dll
и так далее...
Я называю эти плагины DLL, так как они похожи на плагины.
Спасибо заранее за вашу помощь. Патрик
1 ответ
Вы можете создать новый AppDomain и установить appRelativeSearchPath в папку вашего плагина. Затем вы можете загрузить дополнительные сборки, используя метод Load вашего нового домена приложений.
Если вы хотите получить доступ к классам из нового AppDomain в главном AppDomain своих приложений, вы можете создать их экземпляры с помощью метода CreateInstanceAndUnwrap в AppDomain. Но классы в ваших сборках плагинов должны наследовать MarshalRefObject, чтобы это работало.
Я надеюсь, что это указывает на правильное направление.