Мне нужно зарегистрировать некоторые типы, например, MyHandler: IRequest в autofac. Эти типы находятся в сборке «A», которая до сих пор не упоминалась и, следовательно, не загружалась в домен приложения. Я попытался загрузить сборку "A" с помощью Assembly.LoadFile(path), она загружается в домен приложения, но позже эта же dll снова загружается в домен приложения с помощью среды выполнения .net, и в домене приложения есть два экземпляра "A", что является проблемой в моем сценарии. использование регистрации Autofac также не поможет. Я просто хочу знать, чтобы предотвратить загрузку «A» во время выполнения, поскольку я уже загрузил его.





С помощью метода Загрузить файл вы можете загружать сборки несколько раз из разных ПУТИ. Вместо LoadFile() попробуйте Загрузить из() или просто Нагрузка(). Последние методы гарантируют, что ваша сборка будет загружена только один раз.
Спасибо. Кстати, где в документации сказано, что LoadFile будет вызывать многократную загрузку сборок, а LoadFrom() и Load() - нет.
в разделе комментариев ПримечанияИспользуйте метод LoadFile для загрузки и проверки сборок с одинаковыми идентификаторами, но расположенными по разным путям. LoadFile не загружает файлы в контекст загрузки и не разрешает зависимости с использованием пути загрузки, как это делает метод LoadFrom. LoadFile полезен в этом ограниченном сценарии, поскольку LoadFrom нельзя использовать для загрузки сборок с одинаковыми идентификаторами, но разными путями; он загрузит только первую такую сборку.
LoadFile() неверен в 99,9% всех случаев, вместо этого используйте LoadFrom(). Вы когда-либо используете LoadFile() только в том случае, если вы хочу загружаете сборку более одного раза, это очень редко.