2015-10-06 51 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