Приложение .NET 3.5 C# создает несколько доменов приложений. Каждый appdomain загружает ту же неуправляемую dll сторонней стороны. Эта DLL считывает файл конфигурации при инициализации. Если конфигурация изменяется во время выполнения, dll необходимо снова выгрузить и загрузить. Эта DLL не в нашей области, чтобы переписать правильно.Несколько приложений, вызывающих ту же неуправляемую dll
Имеет ли каждый доступ к однопользовательской копии отдельную копию этой неуправляемой DLL, или же Windows хранит одну копию dll и поддерживает подсчет использования? Если последнее имеет место, как мы получаем каждый экземпляр неуправляемой dll, чтобы отразить его уникальную конфигурацию?
Когда вы говорите «Загрузка», вы имеете в виду через 'LoadLibrary'? – leppie
Предложите, чтобы вы рассказали больше о тех обстоятельствах, в которых изменяется файл конфигурации: что его изменяет: подразумеваете ли вы, что произвольными интервалами вы создаете новый appdomain, а затем читаете файл конфигурации, который может быть изменен приложением, прогресс ? Итак, в любой момент, когда файл конфигурации изменяется, все DLL, загруженные предыдущим конфигурационным файлом, должны быть выгружены и перезагружены? Итак, данная «dll» не имеет возможности повторно настраивать себя при уведомлении об изменении конфигурационного файла? Звучит как кошмар. – BillW
Leppie - by «Load» Я имею в виду LoadLibrary. BillW - Я согласен, это кошмар дизайна, который выходит за рамки нашего контроля. Нам нужно работать с этим пока. Конфигурационный файл изменяется всякий раз, когда пользователю нужно переключаться между «проектами» (не важно, что это в этом контексте), и это может произойти в любое время. –