我有以下课程:
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
答案 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");