c# asp.net-mvc entity-framework system.reflection

c# - Obtener tipos en ensamblaje(error: System.Reflection.ReflectionTypeLoadException)



asp.net-mvc entity-framework (3)

Estoy recibiendo una excepción de tipo "Detalles de excepción: System.Reflection.ReflectionTypeLoadException: no se puede cargar uno o más de los tipos solicitados. Recupere la propiedad LoaderExceptions para obtener más información". con el siguiente código:

public IEnumerable<Type> FindClassesOfType(Type assignTypeFrom, IEnumerable<Assembly> assemblies, bool onlyConcreteClasses = true) { foreach(var a in assemblies) { foreach (var t in a.GetTypes())

Necesito obtener los tipos definidos en cada ensamblaje, pero parece que no se puede generar.

Ya realicé todos los procedimientos típicos relacionados con la creación incorrecta de ensamblajes al eliminar dll´s, la solución limpia, la solución de recarga, etc. pero no sucedió nada.

Me gustaría solicitar ideas para resolver este problema encontrando una manera de recuperar más información del error, o encontrar qué ensamblaje está generando problemas o algo así. El mensaje de excepción actual es tan vago como para darse cuenta de cuál es el problema.

Muchas gracias. ps: información adicional, cuando ejecuto la acción de reconstrucción, todo el proceso se genera correctamente sin errores.


¿Fue el DLL creado por ti? ¿A qué marco te diriges?

Me he enfrentado a este problema justo ahora. Incluso compilando mis librerías externas con el framework 3.5 (que usa CLR2), la DLL no se puede importar. El error fue el mismo que el tuyo. Resolví mi problema reconstruyendo mis libs targeting framework 3.0 y parece funcionar ahora. Estoy dejando mis archivos DLL en la carpeta de complementos sin problemas.

Hay muchos problemas similares en los foros de Unity .

Tal vez ya tenga la solución, pero esto puede ayudar a cualquier persona que la necesite en el futuro (como yo lo necesitaba).

¡Atentamente!


El mensaje de error dice todo lo que necesitas, realmente:

try { // your code } catch (ReflectionTypeLoadException ex) { // now look at ex.LoaderExceptions - this is an Exception[], so: foreach(Exception inner in ex.LoaderExceptions) { // write details of "inner", in particular inner.Message } }


Si usa Entity Framework, verifique si la versión en Web.Config es la misma que se menciona en su proyecto.