/ / ¿Cómo puedo excluir colecciones cuando obtengo tipos de un ensamblado c # - c #, reflexión

¿Cómo puedo excluir colecciones cuando obtengo tipos de un conjunto c # - c #, reflejo

Tengo el siguiente método:

 public static Type[] GetAllClasses(this Assembly assembly)
{
var types= assembly.GetExportedTypes().Where(x=>x.IsClass).OrderBy(x=>x.Name).ToArray();

return types;
}

Me gustaría excluir todos los tipos que son colecciones. ¿Cómo puedo hacer eso?

Al depurar puedo ver que la colección tiene una baseType "List" 1 ". ¿Cómo puedo atrapar eso y excluirlos?

muchas gracias

Respuestas

2 para la respuesta № 1

Esto podría funcionar ...

var types= assembly.GetExportedTypes()
.Where(x=>x.IsClass && x.GetInterface("IEnumerable")==null)
.OrderBy(x=>x.Name).ToArray();

(O utilice las interfaces de recopilación más específicas: IList o ICollection si desea excluirlas)