Как получить имя типа, содержащегося в отсутствующей сборке - PullRequest
3 голосов
/ 14 августа 2011

Я загрузил сборку A в контексте ReflectionOnly, чтобы получить информацию о типах и их методах.По крайней мере один из методов имеет тип возвращаемого значения, который является частью сборки зависимостей B.

Проблема в том, что сборка B недоступна и не может быть решена, поэтому выбрасывается следующее FileNotFoundException:

Не удалось загрузить файл или сборку 'B' или одну из ее зависимостей.Система не может найти указанный файл.

Это исключение является ожидаемым.Однако я видел, что Reflector МОЖЕТ загрузить имя типа (что мне нужно), даже когда оно не может разрешить сборку зависимостей.

Кто-то знает, как получить имя типа, содержащегося в отсутствующей сборке, без получения FileNotFoundException?

РЕДАКТИРОВАТЬ:

Исключение выдается при попытке доступа к ReturnType свойство:

Type returnType = methodInfo.ReturnType;

Ответы [ 2 ]

1 голос
/ 14 августа 2011

Вы можете попробовать использовать другую библиотеку для загрузки этой сборки, например Mono.Cecil.

0 голосов
/ 14 августа 2011

Хорошо ... есть "странное" возможное решение, я говорю, это "странное".

Каждый раз, когда вы пытаетесь загрузить класс, который не может быть найден в событии AppDomain, AppDomain.TypeResolve

См. страницу MSDN

Теперь ... мы пока оставляем проблемы многопоточности и множества областей приложений отдельно, чтобы упростить задачу, ноесли вы добавите обработчик в AppDomain.Current.TypeResolve, вы сможете найти имя отсутствующего класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...