使用命名空间获取名称类型
为此,你需要对包含该类型的程序集的引用。如果你有另一种可用类型,你知道它与你想要的类型相同,则可以执行以下操作:
typeof(KnownType).Assembly.GetType(typeName);
- 其中
typeName
是你要查找的类型的名称(包括命名空间),KnownType
是你知道的在同一个程序集中的类型。
效率较低但更一般如下:
Type t = null;
foreach (Assembly ass in AppDomain.CurrentDomain.GetAssemblies())
{
if (ass.FullName.StartsWith("System."))
continue;
t = ass.GetType(typeName);
if (t != null)
break;
}
请注意检查以排除扫描系统命名空间程序集以加快搜索速度。如果你的类型实际上可能是 CLR 类型,则必须删除这两行。
如果你碰巧拥有完全装配限定的类型名称,包括装配,你可以简单地使用它
Type.GetType(fullyQualifiedName);