2015-10-06 52 views
1

我有一个类:动态类名

Class MyClass 
{ 
... 
} 

我需要的类的类型,才能在反射使用它:

string className="MyClass"; 
var type1=Type.GetType(className, true); //I have a problem loading the class here. 
+0

如果你看到[DOC](https://msdn.microsoft.com/en-us/library/c5cf8k43( v = vs.110).aspx):_typeName:要获取的类型的程序集限定名称。请参见[AssemblyQualifiedName](https://msdn.microsoft.com/en-us/library/system.type.assemblyqualifiedname(v = vs.110).aspx)。如果类型位于当前正在执行的程序集或Mscorlib.dll中,则提供通过名称空间限定的类型名称就足够了._ – Grundy

+0

您不一定必须将类型名称保存为字符串。请参阅我的回答,并请澄清问题中是否有未提及的要求。 –

回答

4

你可以尝试使用Type Properties

typeof(T).Name 

,如果你正在处理的实例,然后

this.GetType().Name 
1

你不一定需要的名字,就可以直接做:

var type1 = typeof(MyClass); 
+2

OP希望保存字符串中的类型名称,在这种情况下,您的变体不起作用 – Grundy

+0

@Grundy OP说:“我需要获取类的类型以便在反射中使用它”。可能没有必要将字符串中的类型名称保存起来。 –

+0

我会同意Eren在这一个上,它似乎像OP认为这是唯一的方法。 – Bauss