¿Cómo puedo obtener todas las clases dentro de un espacio de nombres en C#?¿Cómo puedo obtener todas las clases dentro de un espacio de nombres?
Respuesta
Tendrá que hacerlo "al revés"; una lista de todos los tipos en un ensamblaje y luego comprobando el espacio de nombres de cada tipo:
using System.Reflection;
private Type[] GetTypesInNamespace(Assembly assembly, string nameSpace)
{
return
assembly.GetTypes()
.Where(t => String.Equals(t.Namespace, nameSpace, StringComparison.Ordinal))
.ToArray();
}
Ejemplo de uso:
Type[] typelist = GetTypesInNamespace(Assembly.GetExecutingAssembly(), "MyNamespace");
for (int i = 0; i < typelist.Length; i++)
{
Console.WriteLine(typelist[i].Name);
}
Para cualquier cosa antes de .Net 2.0, donde Assembly.GetExecutingAssembly()
no está disponible, necesitará una pequeña solución para obtener el ensamblado:
Assembly myAssembly = typeof(<Namespace>.<someClass>).GetTypeInfo().Assembly;
Type[] typelist = GetTypesInNamespace(myAssembly, "<Namespace>");
for (int i = 0; i < typelist.Length; i++)
{
Console.WriteLine(typelist[i].Name);
}
. Where (t => String.Equals (t.Namespace, nameSpace, StringComparison.Ordinal) – abatishchev
Además, consérvese en Tenga en cuenta que Assembly! = espacio de nombres: algunos espacios de nombres se extienden a través de varios ensamblados. – Bevan
y por qué no devolver solo un IEnumerable
Con Reflection puede realizar un ciclo de todos los tipos en un conjunto. Un tipo tiene una propiedad Espacio de nombres que se utiliza para filtrar sólo el espacio de nombres que le interesa.
Usted tendrá que proporcionar un poco más de información ...
Qué quiere decir con el uso de Reflexión. Se puede recorrer un ensamblajes Manifiesto y obtener una lista de tipos usando
System.Reflection.Assembly myAssembly = Assembly.LoadFile("");
myAssembly.ManifestModule.FindTypes()
Si es sólo en Visual Studio, sólo puede obtener la lista en la ventana de IntelliSense, o abriendo el Examinador de objetos (CTRL + W , J)
- 1. Clases dentro de CoffeeScript 'Espacio de nombres'
- 2. cómo aplicar una solución de aspecto Postsharp amplia (todas las clases en el espacio de nombres)
- 3. PHP cómo importar todas las clases desde otro espacio de nombres
- 4. ¿Cómo obtener todas las clases CSS de un elemento?
- 5. constructores dentro de un espacio de nombres
- 6. Extracción de todas las clases de un espacio de nombre específico
- 7. android dexclassloader obtener la lista de todas las clases
- 8. En PHP, ¿hay alguna manera de obtener todas las clases declaradas en un espacio de nombre específico?
- 9. clases particulares espacios de nombres dentro
- 10. Obteniendo todas las clases de un paquete
- 11. ¿Cómo crear variables privadas dentro de un espacio de nombres?
- 12. operador nuevo espacio de nombres dentro
- 13. ¿Sa1200 Todas las directivas de uso deben colocarse dentro del espacio de nombres (StyleCop) puramente cosmético?
- 14. ¿Cómo puedo extraer todas las clases en un archivo separado?
- 15. Manejando modelos de espacio de nombres (clases) en el espacio de nombres
- 16. Obtener la lista de clases en el espacio de nombres en C#
- 17. Exponer clases dentro de módulos dentro de un paquete de Python directamente en el espacio de nombres del paquete
- 18. Cómo utilizar MySQLi dentro de un espacio de nombres
- 19. Restablecer un espacio de nombres en PHP?
- 20. ¿Cómo puedo obtener todas las imágenes de un archivo qrc?
- 21. ¿Cómo puedo definir amigos en el espacio de nombres global dentro de otro espacio de nombres C++?
- 22. ¿Cómo puedo importar DLL de una clase C++ dentro de un espacio de nombres
- 23. ¿Cómo rescatar todas las excepciones bajo un cierto espacio de nombres?
- 24. Obtener todas las clases heredadas de una clase abstracta
- 25. ¿Cómo obtener id's de todas las entradas dentro del formulario?
- 26. Vinculación de símbolos dentro del espacio de nombres anónimo dentro de un espacio de nombre normal
- 27. "plantillas" un espacio de nombres
- 28. amigo clase función dentro de un espacio de nombres
- 29. ¿Cómo puedo enumerar todas las clases cargadas en un cargador de clases específico?
- 30. ¿Cómo obtener todos los nombres de clase en un espacio de nombres en Ruby?
posible duplicado de [Extracción de todas las clases de un nombre específico espacio] (http://stackoverflow.com/questions/343869/taking-out-all-classes-of-a-specific-namespace) – nawfal
Posible duplicado de [Obtener todos los tipos en un espacio de nombres a través de la reflexión] (https: // stackoverflow.com/questions/79693/getting-all-types-in-a-namespace-via-reflection) – Liam