Как во время выполнения ссылки "плагин" ссылаться на dll

Боюсь, это слишком широкий вопрос. Но я до сих пор не знаю, как начать эту работу, так что даже подсказка поможет, так как ничего не вышло из поиска в Google...

Всякий раз, когда я связываю ссылку, я добавляю ее перед созданием. Что мне нужно, так это уметь добавлять любые ссылки, добавленные в каталог. Это позволило бы мне поместить dll в dir и добавить его ТОЛЬКО В РАБОТЕ, если эта dll присутствует.

Так сказать

  • что ничего не добавляется при запуске ---> никаких дополнительных функций.
  • Я добавляю 1.dll ----> Должны быть добавлены функции, присутствующие в 1.dll
  • Я добавляю 2.dll ----> Должны быть добавлены функции, присутствующие в 2.dll

и так далее...

Я называю эти плагины DLL, так как они похожи на плагины.

Спасибо заранее за вашу помощь. Патрик

1 ответ

Решение

Вы можете создать новый AppDomain и установить appRelativeSearchPath в папку вашего плагина. Затем вы можете загрузить дополнительные сборки, используя метод Load вашего нового домена приложений.

Если вы хотите получить доступ к классам из нового AppDomain в главном AppDomain своих приложений, вы можете создать их экземпляры с помощью метода CreateInstanceAndUnwrap в AppDomain. Но классы в ваших сборках плагинов должны наследовать MarshalRefObject, чтобы это работало.

Я надеюсь, что это указывает на правильное направление.

Другие вопросы по тегам