Cómo evitar ReflectionTypeLoadException cuando se llama a Assembly.GetTypes ()

Estoy tratando de escanear un ensamblaje en busca de tipos que implementen una interfaz específica usando un código similar a este:

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;
}

Mi problema es que obtengo unaReflectionTypeLoadException cuando llame aasm.GetTypes() en algunos casos, p. si el conjunto contiene tipos que hacen referencia a un conjunto que actualmente no está disponible.

En mi caso, no estoy interesado en los tipos que causan el problema. Los tipos que estoy buscando no necesitan los ensamblajes no disponibles.

La pregunta es: ¿es posible omitir / ignorar de alguna manera los tipos que causan la excepción pero aún procesar los otros tipos contenidos en el ensamblado?

Respuestas a la pregunta(4)

Su respuesta a la pregunta