ASP.Net достигает этого с помощью «теневого копирования».См. Здесь: Теневое копирование MSDN
В основном сборки копируются в другую папку ASP.Net, из которой они загружаются в домен приложения.Именно эта скопированная версия сборки заблокирована процессом, оставив исходный файл сборки (в папке Bin) разблокированным.Затем домен приложения настраивается для отслеживания изменений в исходной сборке, и в случае обнаружения обновления создается новый домен приложения и в него загружается новая сборка.
На этом этапе ASP.Net направляет любые будущие запросы к веб-приложению в новый домен приложений, в то время как старый домен приложений сохраняется, чтобы продолжать обслуживать любые выполняющиеся в данный момент запросы вплоть до завершения.Когда ASP.Net определяет, что старый домен приложения больше не обрабатывает какие-либо запросы, он выгружается и «горячая замена» завершена.
Из вашего краткого описания, хотя я бы рекомендовал изучить Microsoft MEF .MEF - это фреймворк, предназначенный для создания архитектуры плагинов, которую вы описываете.