Type.GetType("namespace.abClassName") devuelve nulo
Este código:
Type.GetType("namespace.a.b.ClassName")
devolucionesnull
.
Tengo en los usos:
using namespace.a.b;
El tipo existe, está en una biblioteca de clases diferente y necesito obtenerlo por su nombre dado como cadena.
Type.GetType("namespace.qualified.TypeName")
solo funciona cuando el tipo se encuentra en mscorlib.dll o en el ensamblado que se está ejecutando actualmente.
Si ninguna de esas cosas es cierta, necesitará un nombre calificado para ensamblador :
Type.GetType("namespace.qualified.TypeName, Assembly.Name")
También puede obtener el tipo sin nombre calificado de ensamblado pero también con el nombre de dll, por ejemplo:
Type myClassType = Type.GetType("TypeName,DllName");
Tuve la misma situación y funcionó para mí. Necesitaba un objeto de tipo "DataModel.QueueObject" y tenía una referencia a "DataModel", así que obtuve el tipo de la siguiente manera:
Type type = Type.GetType("DataModel.QueueObject,DataModel");
La segunda cadena después de la coma es el nombre de referencia (nombre dll).
Prueba este método.
public static Type GetType(string typeName)
{
var type = Type.GetType(typeName);
if (type != null) return type;
foreach (var a in AppDomain.CurrentDomain.GetAssemblies())
{
type = a.GetType(typeName);
if (type != null)
return type;
}
return null;
}
Si el ensamblado es parte de la compilación de una aplicación ASP.NET, puede usar la clase BuildManager:
using System.Web.Compilation
...
BuildManager.GetType(typeName, false);