Necesito recuperar todas las enumeraciones que se cargaron desde un conjunto determinado de ensamblajes.¿Cómo obtengo una lista de todos los tipos cargados en C#?
Respuesta
List<Type> list = new List<Type>();
foreach (Assembly ass in AppDomain.CurrentDomain.GetAssemblies())
{
foreach (Type t in ass.GetExportedTypes())
{
if (t.IsEnum)
{
list.Add(t);
}
}
}
que debe hacerlo, para todos los ensamblados cargados por el actual dominio de aplicación, para obtener sólo a partir de conjuntos definidos, simplemente ajustar ;-)
Parte divertida (fonéticamente): "simplemente ajuste" :) –
Suponiendo que ha Assembly
la lista de objetos que desea comprobar:
IEnumerable<Assembly> assemblies; // assign the assemblies you want to check here
foreach (Assembly a in assemblies) {
foreach (Type t in assembly.GetTypes()) {
if (t.IsEnum) {
// found an enum! Do whatever...
}
}
}
usted debería ser capaz de utilizar Assembly.GetTypes()
para obtener todos los tipos para el montaje. Para cada tipo, puede usar la propiedad Type.IsEnum
para ver si se trata de una enumeración.
También puede utilizar LINQ para devolver una lista de todos los tipos de enumeración de una lista de asambleas.
IEnumerable<Assembly> assemblies;
// give assemblies some value
var enums = from assembly in assemblies let types = assembly.GetTypes() from type in types where type.IsEnum select type;
enums
serán del tipo IEnumerable.
Aquí es una solución más funcional:
AppDomain.CurrentDomain.GetAssemblies()
.SelectMany(a => a.GetTypes())
.Where(t => t.IsEnum)
- 1. ¿Cómo obtengo una lista de todos los ensamblajes cargados actualmente?
- 2. ¿Cómo obtengo todas las instancias de todos los tipos cargados que implementan una interfaz determinada?
- 3. ¿Cómo hago una lista de todos los conjuntos cargados?
- 4. ¿Cómo obtengo una lista de todos los caracteres imprimibles en C#?
- 5. ¿Cómo verificar los tipos de archivos cargados en PHP?
- 6. require.js: Acceda a todos los módulos cargados
- 7. ¿Cómo obtengo una lista de todos los esquemas en una base de datos del servidor Sql?
- 8. Lista de todos los tipos declarados por módulo en Ruby
- 9. ¿Cómo obtengo una lista de todos los objetos HttpSession en una aplicación web?
- 10. Magento - ¿Cómo obtengo una lista de todos los países permitidos en el conjunto de opciones?
- 11. ¿Cómo obtengo una lista de todos los caracteres Unicode que tienen una propiedad determinada?
- 12. ¿Cómo almacenar diferentes tipos de datos en una lista? (C++)
- 13. dwscript: ¿cómo enumerar todos los tipos disponibles?
- 14. En Perforce, ¿cómo obtengo una lista de los archivos desprotegidos?
- 15. C# - ¿Cómo obtengo el usuario "Todos"?
- 16. Determine los ensamblados cargados
- 17. ¿Cómo obtengo una lista de todos los archivos no versionados de SVN?
- 18. Java: ¿cómo obtengo todos los valores seleccionados de una JList?
- 19. Rack :: Solicitud: ¿cómo obtengo todos los encabezados?
- 20. todos los elementos en una lista
- 21. ¿Hay un evento "Todos los niños cargados" en WPF
- 22. Lista de todos los tipos registrados en una instancia de contenedor de Castle Windsor
- 23. Hacer todos los tipos constantes por defecto en C++
- 24. Eliminar todos los elementos de una lista
- 25. ¿Cómo obtengo la lista de todos los nombres de archivo en un directorio usando VB6?
- 26. Componer una lista de todos los pares
- 27. ¿Cómo mostrar todos los elementos en una lista de arrays?
- 28. Cómo obtener una lista de todos los usuarios en SharePoint
- 29. Obtención de todos los tipos que implementan una interfaz
- 30. Lista de módulos cargados usando gdb
¿Qué significa "que se cargaron"? ¿Puedes dar un ejemplo de un tipo que no se cargó frente a un tipo que está cargado? –