Я пытаюсь выполнить проверку сборки для типов, реализующих определенный интерфейс, используя код, подобный этому:
public List<Type> FindTypesImplementing<T>(string assemblyPath)
{
var matchingTypes = new List<Type>();
var asm = Assembly.LoadFrom(assemblyPath);
foreach (var t in asm.GetTypes())
{
if (typeof(T).IsAssignableFrom(t))
matchingTypes.Add(t);
}
return matchingTypes;
}
Моя проблема в том, что я получаю ReflectionTypeLoadException
при вызове asm.GetTypes()
в некоторых случаях, например. если сборка содержит типы, ссылающиеся на сборку, которая в настоящее время недоступна.
В моем случае меня не интересуют типы, которые вызывают проблему. Типы, которые я ищу, не нуждаются в недоступных ассемблерах.
Вопрос: возможно ли каким-то образом пропускать/игнорировать типы, вызывающие исключение, но все же обрабатывать другие типы, содержащиеся в сборке?