Можно создать дубликат:
Loading DLLs into a separate AppDomainC# - загрузка сборки .NET в отдельном AppDomain Так вы можете выгрузить
Что такое правильный способ загрузить сборку .NET в отдельный AppDomain так что вы можете получить доступ к его типам/классам, но все равно сможете его выгрузить (и перезагрузить).
Это тангенс этого предыдущего обсуждения: C# - Correct Way to Load Assembly, Find Class and Call Run() Method
+1 спасибо. Насколько плох рейтинг производительности каждый раз, когда вы пересекаете AppDomains? – BuddyJoe
Всё зависит от меня. Все, что проходит между приложениями, в основном сериализовано. (Это работает очень похоже на Remoting.) В общем, если все ваши типы получаются из MarshallByRefObj, они будут сериализовать «дескриптор» поперек, так что это довольно быстро. Когда вы читаете данные, данные будут сериализованы, хотя это может немного замедлить работу. Старайтесь всегда сохранять «внутреннее» во втором appdomain, и это, вероятно, не будет проблемой. –
Обратите внимание, что время жизни удаленного экземпляра ограничено. В зависимости от версии .Net вместо удаленной работы следует использовать WCF. – Guillaume