Get a Type by name with namespace
suggest changeTo 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);
- where
typeName
is the name of the type you are looking for (including the namespace) , andKnownType
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);
Found a mistake? Have a question or improvement idea?
Let me know.
Table Of Contents