Usando la reflexión, necesito investigar una DLL de usuario y crear un objeto de una clase en ella.Crear un objeto sin conocer el nombre de la clase en tiempo de diseño
¿Cuál es la manera simple de hacerlo?
Usando la reflexión, necesito investigar una DLL de usuario y crear un objeto de una clase en ella.Crear un objeto sin conocer el nombre de la clase en tiempo de diseño
¿Cuál es la manera simple de hacerlo?
Probar Activator.CreateInstance.
Puede crear una instancia de una clase de un objeto de tipo utilizando Activator.CreateInstance, para obtener todo tipo en un archivo DLL que se pueden utilizar Assembly.GetTypes
Echa un vistazo a estos enlaces:
http://www.java2s.com/Code/CSharp/Development-Class/Createanobjectusingreflection.htm
http://msdn.microsoft.com/en-us/library/k3a58006.aspx
es, básicamente, utilizar la reflexión para cargar un ensamblado, y luego encontrar un tipo que le interesa. una vez que tenga el tipo, puede pedir a encontrar su constructores o de otro reunieron hods/propiedades. Una vez que tienes el constructor, puedes invocarlo. ¡Fácil!
System.Reflection.Assembly
es la clase que deseará utilizar. Contiene muchos métodos para iterar sobre los tipos que contiene una DLL de usuario. Se puede recorrer cada clase, tal vez ver si se hereda de una interfaz en particular, etc.
http://msdn.microsoft.com/en-us/library/system.reflection.assembly_members.aspx
Investigar Assembly.GetTypes()
método para obtener la lista de tipos, o Assembly.GetExportedTypes()
sólo las públicas.
Como ya se ha dicho, debe abrir el espacio de nombres System.Reflection.
Si sabe de antemano la ubicación/nombre de la DLL que desea cargar, debe recorrer el Assembly.GetTypes().
En Pseudocódigo se vería algo como esto:
Crear objeto y montaje.
Itere a través de todos los tipos que figuran en el conjunto.
Una vez que encuentre el que usted está buscando, invocarlo (CreateInstance) ...
utilizar con prudencia.
;)
Tengo un montón de código de reflexión si quieres echar un vistazo alrededor, pero la tarea es muy simple y hay al menos una docena de artículos con las muestras que hay en la naturaleza. (Aka Google). A pesar de eso, MSDN es su amigo para Reflection Reference.