with net method español create c# .net reflection

c# - net - Tipo de resolución del nombre de clase en un ensamblaje diferente



reflection c# español (4)

¿Puedes usar cualquiera de las formas estándar?

typeof( MyClass ); MyClass c = new MyClass(); c.GetType();

De lo contrario, tendrá que agregar información al Type.GetType sobre el ensamblaje.

Tengo un método donde necesito resolver el tipo de una clase. Esta clase existe en otro ensamblado con el espacio de nombres similar a:

MyProject.Domain.Model

Estoy intentando realizar lo siguiente:

Type.GetType("MyProject.Domain.Model." + myClassName);

Esto funciona muy bien si el código que está realizando esta acción está en el mismo ensamblaje que la clase cuyo tipo estoy tratando de resolver, sin embargo, si mi clase está en un ensamblaje diferente, este código falla.

Estoy seguro de que hay una manera mucho mejor de lograr esta tarea, pero no he tenido mucha experiencia en resolver ensamblajes y recorrer espacios de nombres dentro para resolver el tipo de la clase que estoy buscando. ¿Algún consejo o consejo para realizar esta tarea con mayor gracia?


Deberá agregar el nombre del ensamblado de esta manera:

Type.GetType("MyProject.Domain.Model." + myClassName + ", AssemblyName");

Para evitar ambigüedades o si el ensamblaje está ubicado en el GAC, debe proporcionar un nombre de ensamblaje completo como el siguiente:

Type.GetType("System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089");


Enfoque corto y dinámico utilizando la propiedad AssemblyQualifiedName -

Type.GetType(Type.GetType("MyProject.Domain.Model." + myClassName).AssemblyQualifiedName)


Primero cargue el ensamblaje y luego el tipo. ejemplo: Assembly DLL = Assembly.LoadFile (PATH); DLL.GetType (typeName);