У меня есть служба, которая включает загрузку сборки из облачного хранилища, создание экземпляра ее с помощью Activator.CreateInstance, а затем вызов метода на нем.Почему событие AssemblyResolve пытается решить сборку, которая уже загружена в AppDomain?
Я установил метод AssemblyResolve для загрузки зависимостей, которые отлично работают, но для тестирования/эксперимента. Теперь я пытаюсь вручную загрузить сборки. Я дошел до вывода, которые необходимы зависимости, загрузив их, а затем загружать их с помощью
Assembly.Load(byte[])
После чего я могу видеть, что они будут загружены в AppDomain с помощью
AppDomain.CurrentDomain.GetAssemblies())
Однако, когда я вызова метод на сборке, который ссылается на это, он по-прежнему относится к AssemblyResolver.
Возможно, я неправильно понимаю, как загружаются сборки и AppDomain, но мне кажется, что после того, как сборка загружена, она должна быть доступна этой сборке, и ее не нужно будет разрешать?
Почему он не может «видеть» его? Версия и имя и т. Д. - то же самое.
Я прочитал о различных контекстах привязки сборки here, и я думаю, что это может быть проблемой? Он предполагает, что использование Assembly.Load (string) будет загружаться в другой контекст, чем Assembly.Load (byte)? В этом случае, как это сделать, когда у меня есть сборка в памяти в виде байта []?
Благодаря
Не удается загрузить сборку, даже если вы уже используете Assembly.Load (..) без каких-либо исключений? – Redhead
Можете ли вы показать скриншот экрана 'Debug-> Widnows-> Modules' в Visual Studio после того, как сборка была загружена с помощью assebly selected? –
Пожалуйста, добавьте код, который показывает, как вы загружаете тип, получите метод и выполните его. Я принял обоснованное предположение о том, что проблема, хотя ;-) –