Использование AppDomain.CreateDomain(...)
:
1). создать новый домен приложения для каждого плагина и поддерживать его в течение всего времени жизни приложения
- плюсы: нет затрат на: создание домена приложения, загрузку .dll и т. Д. При каждом вызове плагина
- минусы: все .dll из всех доменов приложений потребляют память в течение всего времени жизни приложения; нужно быть осторожным со статическими переменными; нет песочницы между вызовами (если кто-то сломает домен приложения, тогда все вызовы не будут выполнены)
2). создавать новый домен приложения для каждого вызова плагина и выгружать после
- плюсы: песочница между звонками; освобождение памяти между вызовами
- cons: накладные расходы на: создание домена приложения, загрузку .dll и т. Д. При каждом вызове плагина
Если у вас много вызовов на плагин и большая партия .dll для него, используйте опцию 1
Если у вас много вызовов на плагин и небольшая партия .dll для него, используйте опцию 2
Если у вас есть несколько вызовов на плагин и небольшая партия .dll для него, используйте опцию 2
Если вы хотите изолированную среду между вызовами, используйте опцию 2