Cómo obtener información de reflexión de una clase cargada en el ensamblaje principal

Estoy usando el Tipo.GetType función para obtener información de reflexión sobre una clase. si uso esa función desde mi aplicación, todo funciona bien, pero ahora necesito llamar a esa función desde un dll externo previamente cargado desde mi aplicación.

Este código funciona bien si se llama desde la aplicación principal

Type myType1 = Type.GetType("MyNameSpace.MyType");

pero falla (miTipo1 no devuelve nada) si ese código se coloca dentro de un dll (ese dll se carga desde mi aplicación)

La pregunta es cómo puedo usar Type.GetType cargar un tipo que existe en el Exe que carga el dll?

EDIT:

Creo que la pregunta se puede reformular como ¿cómo puedo cargar un tipo del ensamblaje que carga mi dll?

MyEXE
  Myclass   
  MyDll (loaded by MyExe)
    Type.GetType //only get types of the MyDll assembly, how i can access the Myclass type which is defined on MyExe?

preguntado el 22 de mayo de 12 a las 19:05

2 Respuestas

Debe usar nombres completamente calificados cuando use archivos DLL fuera del alcance del proyecto

Type myType1 = Type.GetType("MyType, MyNameSpace", true, true);

Pruébalo

Respondido el 10 de junio de 15 a las 05:06

Verifique la respuesta actualizada, realmente estoy usando nombres calificados, el problema es que cuando uso el Type.GetType la función solo obtiene tipos del ensamblaje actual (MyDll) y necesito obtener el tipo del exe que carga el ensamblaje. - El Salvador

Su ejemplo dice que no está utilizando un espacio de nombres completamente calificado. Mire el ejemplo nuevamente para asegurarse de que está usando un , para separar el nombre de su clase del espacio de nombres: Blast_dan

muchas gracias me perdí el , - El Salvador

Debería haber usado el ajuste de código para hacerlo más evidente. ¡Me alegro de que lo hayas descubierto! - Blast_dan

también puede cargar los ensamblajes a través del método Assembly.Load y luego enumerarlos todos (GetTypes()) o también obtener un tipo específico del ensamblaje. solo eche un vistazo a la clase de ensamblaje

contestado el 22 de mayo de 12 a las 20:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.