다음과 유사한 코드를 사용하여 특정 인터페이스를 구현하는 형식에 대한 어셈블리를 스캔하려고합니다.
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()
입니다.
제 경우에는 문제를 일으키는 유형에 관심이 없습니다. 검색중인 유형에는 사용할 수없는 어셈블리가 필요하지 않습니다.
문제는 예외를 발생시키는 유형을 어떻게 든 건너 뛰거나 무시할 수 있지만 어셈블리에 포함 된 다른 유형은 계속 처리 할 수 있습니까?