To do this you need a reference to the assembly which contains the type. If you have another type available which you know is in the same assembly as the one you want you can do this:
typeof(KnownType).Assembly.GetType(typeName);
typeName
is the name of the type you are looking for (including the namespace)
, and KnownType
is the type you know is in the same assembly.Less efficient but more general is as follows:
Type t = null;
foreach (Assembly ass in AppDomain.CurrentDomain.GetAssemblies())
{
if (ass.FullName.StartsWith("System."))
continue;
t = ass.GetType(typeName);
if (t != null)
break;
}
Notice the check to exclude scanning System namespace assemblies to speed up the search. If your type may actually be a CLR type, you will have to delete these two lines.
If you happen to have the fully assembly-qualified type name including the assembly you can simply get it with
Type.GetType(fullyQualifiedName);