2008-12-05 9 views
10

¿Hay alguna forma de obtener un objeto de un espacio de nombre específico? Tal vez con el System.Reflections? Quiero obtener todos los objetos del tipo ITestType en el espacio de nombres Test.TestTypes como Objetos para que tenga una lista de instancias de TestType1, TestType2, TestType3 y más. ¿Alguien me puede ayudar? No sé dónde buscar eso.Extracción de todas las clases de un espacio de nombre específico

Respuesta

19

Puede encontrar todos los tipos dentro de un ensamblaje, y encontrar todos los tipos que coinciden con el espacio de nombres dado (esto es realmente fácil con LINQ) - pero si no tiene un ensamblaje específico para revisar, necesita examinar todos de los posibles.

Sin embargo, si está buscando una forma de encontrar todos los objetos en vivo, esa es una cuestión diferente, y no puede hacerlo sin utilizar la API del generador de perfiles, que yo sepa. (Incluso entonces, puede ser difícil - No sé.)

Aquí está la consulta LINQ sin embargo:

public static IEnumerable<Type> GetTypesFromNamespace(Assembly assembly, 
               String desiredNamespace) 
{ 
    return assembly.GetTypes() 
        .Where(type => type.Namespace == desiredNamespace); 
} 
Cuestiones relacionadas