我有一个代码库,我与工作看起来像下面返回类型
using namespace.scenario1;
...
using namespace.scenarion;
internal static Type GetType(string typeName)
{
switch(typeName)
{
case "class1": return typeof(class1); // namespace.scenario1.class1
...
case "classn": return typeof(classn);
}
}
每次我想支持一个新的类我要补充一个使用陈述和新的案例陈述,它真的觉得这可以自动化。
我试图像下面的一种方法,但它有时会返回空值
internal static Type GetType(string typeName)
{
return Type.GetType(typeName);
}
我读了几篇文章,如this one是谈论其设置组件的名字,但我仍然不不知道如何要做到这一点,并会在正确的方向欣赏提示。我知道visual studio可以找出程序集名称,因为它可以找出class1
表示namespace.scenario1.class1
谢谢!
为什么不直接使用的类型名称?我的意思是,如果你使用'Type.GetType(“TheTypeName”)''你已经可以做到这一点而不会做任何事情...... – Gusman
好吧,对不起,没有读过最后一部分,如果你想要一个类型的真实名称与GetType一起使用通过typeof(theType).AssemblyQualifiedName检索完整名称,它将返回包含程序集和命名空间的完全限定名称。 – Gusman
@Gusman - 当我尝试 '回报的typeof(typeName的).AssemblyQualifiedName;' 我得到的字符串是可变的,但使用像一个类型 –