Dim a as Type = GetType(className)will gimme the type。但我只有班級的名字作爲字符串。我想要GetType(「class1」),它會返回類型。如何通過發送類的名稱而不是類作爲參數來獲取類的類型?
3
A
回答
6
Type.GetType("class1")
1
Type.GetType(...)和Assembly.GetType(...)都需要一個完全限定的類型名稱。因此,只有在沒有名稱空間的情況下傳入類名纔會產生Type。
如果你一定要包括這樣的命名空間:
Type.GetType("Fully.Qualified.Namespace.class1")
將產生相同的結果的GetType(1類)。
更新:如果你不知道你的類的命名空間,你可以做一個搜索(使用LINQ提醒你)在當前裝配類型:
GetType().Assembly.GetTypes().First(type => type.Name == "AssemblyModuleTests")
我認爲這是一個緩慢的操作因爲GetTypes()枚舉程序集中的所有類型,所以使用完全限定名稱查找類型。
+0
你可以將第二個查詢與AppDomain.CurrentDomain.GetAssemblies()結合起來,將範圍添加到搜索中... – 2009-09-11 15:49:09
+0
@Roger - 當然。它會增加更多的負擔,因爲你會在所有加載的程序集中加載所有可能的類型。所以不知道更多關於這個場景我不會推薦它...... – 2009-09-11 16:09:23
相關問題
- 1. 獲取泛型類的泛型參數的類型名稱
- 2. C#類型的名稱,而不是CLR類型名稱
- 3. 如何通過類型名稱獲取通用接口的類型?
- 4. 如何通過System.Nullable獲取默認類型按類名只是按名稱?
- 5. 通過名稱類型參數
- 6. 如何通過類名獲取類類型?
- 7. 獲取類模板的類型名稱
- 8. 獲取泛型類參數的類名稱
- 9. 如何獲取參考類的名稱?
- 10. 類型參數名稱:類型不是從java類型派生的。 - Xamarin android
- 11. StructureMap:如何按類型而不是名稱指定Ctor參數
- 12. 作爲類型參數的非靜態內部類名稱
- 13. 如何通過類型名稱引用ascx的類型?
- 14. 獲取Scala類型的類型參數
- 15. 是否可以獲取泛型類型的類型名稱?
- 16. 如何獲取泛型方法參數的類型參數類?
- 17. ;用類型的名稱,而不是
- 18. 如何通過反射獲取EntityReference類型的PropertyInfo.PropertyType名稱
- 19. 如何在Delphi XE中通過名稱獲取類的類型引用?
- 20. 獲取通用類型參數的軟件包名稱
- 21. 如何僅通過檢查其父類的泛型參數來獲取子類類型?
- 22. 如何通過Ajax來發送請求參數Struts2的action類
- 23. 如何在運行時獲取參數的名稱類型?
- 24. 通過該類的實例獲取類的名稱
- 25. 通過類作爲參數
- 26. 按名稱獲取類型
- 27. 如何通過反射來獲取類中某個屬性的「類類型」?
- 28. 如何在struts2中通過操作名稱獲取操作類?
- 29. 如何獲取函數的參數類型和返回類型?
- 30. 如何從類型名稱中獲取類名?
僅當class1位於全局命名空間中時纔有效。 – 2009-09-11 15:38:55
@Peter,當然,但這只是問題所在。更重要的是,它只適用於在mscorlib中定義的類型或包含對Type.GetType的調用的程序集中。 – 2009-11-30 11:23:22