最佳答案
我试图扫描一个程序集来实现一个特定接口的类型,使用的代码类似于下面的代码:
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;
}
我的问题是,在某些情况下,当调用 asm.GetTypes()
时,我会得到一个 ReflectionTypeLoadException
,例如,如果程序集包含引用当前不可用的程序集的类型。
就我而言,我对引起问题的类型不感兴趣。我正在搜索的类型不需要不可用的程序集。
问题是: 是否有可能以某种方式跳过/忽略导致异常但仍然处理程序集中包含的其他类型的类型?