我正在尝试使用类似于以下代码的程序集来扫描实现特定接口的类型的类型:
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()出现,例如,如果程序集包含引用当前不可用的程序集的类型。
就我而言,我对引起问题的类型不感兴趣。我要搜索的类型不需要不可用的程序集。
问题是:是否可以以某种方式跳过/忽略导致异常但仍处理程序集中包含的其他类型的类型?
潇潇雨雨
长风秋雁