Puede usar Type.GetType(string)
, pero necesitará saber el nombre completo de la clase, incluido el espacio de nombres, y si no está en el ensamblado actual o en mscorlib, necesitará el nombre del ensamblado en su lugar. (Idealmente, useAssembly.GetType(typeName)
en lugar, ¡me parece más fácil en términos de obtener la referencia de ensamblaje correcta!)
Por ejemplo:
Type stringType = typeof(int).Assembly.GetType("System.String");
Type myType = Type.GetType("MyNamespace.MyType");
Type formType = Type.GetType ("System.Windows.Forms.Form, " +
"System.Windows.Forms, Version=2.0.0.0, Culture=neutral, " +
"PublicKeyToken=b77a5c561934e089");
Un uso sencillo:
Type typeYouWant = Type.GetType("NamespaceOfType.TypeName, AssemblyName");
Muestra:
Type dogClass = Type.GetType("Animals.Dog, Animals");
fuente
Un poco tarde para responder, pero esto debería funcionar
Type myType = Type.GetType("AssemblyQualifiedName");
su nombre calificado de ensamblaje debe ser así
"Boom.Bam.Class, Boom.Bam, Version=1.0.0.262, Culture=neutral, PublicKeyToken=e16dba1a3c4385bd"
fuente
A través de Type.GetType puede obtener la información del tipo. Puede usar esta clase para obtener la información del método y luego invocar el método (para métodos estáticos, deje el primer parámetro nulo).
Es posible que también necesite el nombre del ensamblado para identificar correctamente el tipo.
fuente
Nosotros podemos usar
para obtener el nombre de la clase y también puede crear un objeto usando
Activator.CreateInstance(type);
using System; using System.Reflection; namespace MyApplication { class Application { static void Main() { Type type = Type.GetType("MyApplication.Action"); if (type == null) { throw new Exception("Type not found."); } var instance = Activator.CreateInstance(type); //or var newClass = System.Reflection.Assembly.GetAssembly(type).CreateInstance("MyApplication.Action"); } } public class Action { public string key { get; set; } public string Value { get; set; } } }
fuente