使用命名空间获取名称类型

为此,你需要对包含该类型的程序集的引用。如果你有另一种可用类型,你知道它与你想要的类型相同,则可以执行以下操作:

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);