我有一個代碼庫,我與工作看起來像下面返回類型
using namespace.scenario1;
...
using namespace.scenarion;
internal static Type GetType(string typeName)
{
switch(typeName)
{
case "class1": return typeof(class1); // namespace.scenario1.class1
...
case "classn": return typeof(classn);
}
}
每次我想支持一個新的類我要補充一個使用陳述和新的案例陳述,它真的覺得這可以自動化。
我試圖像下面的一種方法,但它有時會返回空值
internal static Type GetType(string typeName)
{
return Type.GetType(typeName);
}
我讀了幾篇文章,如this one是談論其設置組件的名字,但我仍然不不知道如何要做到這一點,並會在正確的方向欣賞提示。我知道visual studio可以找出程序集名稱,因爲它可以找出class1
表示namespace.scenario1.class1
謝謝!
爲什麼不直接使用的類型名稱?我的意思是,如果你使用'Type.GetType(「TheTypeName」)''你已經可以做到這一點而不會做任何事情...... – Gusman
好吧,對不起,沒有讀過最後一部分,如果你想要一個類型的真實名稱與GetType一起使用通過typeof(theType).AssemblyQualifiedName檢索完整名稱,它將返回包含程序集和命名空間的完全限定名稱。 – Gusman
@Gusman - 當我嘗試 '回報的typeof(typeName的).AssemblyQualifiedName;' 我得到的字符串是可變的,但使用像一個類型 –