Próbuję przeskanować zestaw pod kątem typów implementujących określony interfejs przy użyciu kodu podobnego do tego:
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;
}
Mój problem polega na tym, że ReflectionTypeLoadException
podczas wywoływania asm.GetTypes()
w niektórych przypadkach otrzymuję a , np. Jeśli zestaw zawiera typy odwołujące się do zestawu, który jest obecnie niedostępny.
W moim przypadku nie interesują mnie typy, które powodują problem. Typy, których szukam, nie wymagają niedostępnych zestawów.
Pytanie brzmi: czy można w jakiś sposób pominąć / zignorować typy, które powodują wyjątek, ale nadal przetwarzać inne typy zawarte w zestawie?