假设我有这个基本字符串......
string a = "Entity";
这个Type对象......
Type t;
有没有办法通过阅读a
?
Exanple:如果a
更改为Prop
,则会创建一个引用Prop
类型的Type对象。 t
将等于typeof(Prop)
。
答案 0 :(得分:6)
是。有一个静态的Type.GetType()方法,它接受一个字符串并返回一个Type对象,该对象表示具有字符串给出的名称的类型。
理解这将搜索所有引用的命名空间,并且有几个命名的类,例如“TextBox”(在WFA,WPF和ASP命名空间中)。因此,您必须完全限定类型名称才能使方法获得正确的类型。
答案 1 :(得分:3)
是的,您可以使用Type.GetType(string)
。
注意:
要获取的类型的程序集限定名称。请参阅AssemblyQualifiedName。如果类型在当前正在执行的程序集中或在Mscorlib.dll中,则提供由其名称空间限定的类型名称就足够了。
请注意链接的MSDN页面上的其他备注。
答案 2 :(得分:1)
这会为你创建一个类的实例,虽然你不能将它强制转换为指定的类型(除非你有一个基础对象,或者知道它实现了一个接口):
public class Testing
{
private void Test()
{
var name = "A";
var type = Assembly.GetExecutingAssembly().GetTypes().Where(t => t.Name == name).FirstOrDefault();
var obj = Activator.CreateInstance(type);
}
}
private class A
{
}