Cómo obtener información de reflexión de una clase cargada en el ensamblaje principal
Frecuentes
Visto 140 veces
0
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?
2 Respuestas
3
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
0
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 c# .net reflection or haz tu propia pregunta.
stackoverflow.com/questions/1803540/… - kleinohad