在c#中将字符串转换为类名

时间:2010-07-16 05:30:29

标签: c# .net

我有以下课程:

class MyClass{  
{  

和以下字符串:

string s="MyClass";  

如何使用字符串s获取类的类型:

Type t = typeof(MyClass); //but i need to use s instead.      

我已经尝试了

Type type = Type.GetType(s); //the result is null

3 个答案:

答案 0 :(得分:8)

使用googeling我找到了this

  

Type type = Type.GetType(完全   限定类名称字符串);

来自msdn

  

的typeName:   要获取的类型的程序集限定名称。看到   AssemblyQualifiedName。如果类型是   在当前正在执行的程序集中   在Mscorlib.dll中,它足够了   提供由其限定的类型名称   命名空间。

     

返回值带有的类型   指定的名称,如果找到;除此以外,   nullNothingnullptra null引用   (在Visual Basic中没有任何内容)。

所以,...我相信当你得到null作为结果时找不到它

for more info for AssemblyQualifiedName

了解您的完全限定名称

typeof(MyClass).FullName
typeof(MyClass).AssemblyQualifiedName

答案 1 :(得分:1)

GetType应该使用限定名称。请参阅following thread(其中包括Jon Skeet的一些见解)......

答案 2 :(得分:1)

如果您总是在同一个程序集中,则可以使用Assembly.GetType,因此您不必存储带有程序集名称的字符串。

this.GetType().Assembly.GetType("MyNamespace.MyClass");