Основная проблема заключается в том, что у вас нет контроля над Хостом во время выполнения - именно это контролирует продолжительность жизни (и, следовательно, кеш).
Я бы исследовал создание какого-то рода(облегченный?) хост - может быть .exe или служба.
Большая часть ваших DLL будет зависать от нового хоста, но вы все равно можете развернуть «фасадную» DLL, которая в свою очередь называется вашей главнойрешение (привязано к вашему хосту).Да, внешние клиенты могли бы вызывать ваш новый хост напрямую, но это означало бы изменение / переконфигурирование тех внешних вызывающих абонентов, когда сохранение исходной библиотеки DLL / API на месте изолировало бы внешних вызывающих абонентов от ваших внутренних изменений.
Это (я полагаю) означало бы полностью потрошить и реструктурировать ваше решение, особенно те библиотеки DLL, к которым обращаются внешние абоненты, потому что вместо обработки запросов он просто передает запрос вашему новому хосту.
Производительность
Межпроцессное взаимодействие обходится дороже, чем удержание его внутри процесса - я не уверен, как изменение подхода повлияет на вашу производительность и способностичтобы достичь SLA.
В частности, запуск нового экземпляра хоста приведет к снижению производительности.