回答
您可以使用Activator.CreateInstance,得到一個dll中的所有類型,你可以使用Assembly.GetTypes
在這些鏈接看看一個從類型對象類的實例:
http://www.java2s.com/Code/CSharp/Development-Class/Createanobjectusingreflection.htm
http://msdn.microsoft.com/en-us/library/k3a58006.aspx
你基本上使用反射來加載程序集,然後找到一種你感興趣的問題。一旦你的類型,你可以問找到它的構造函數或其他滿足點頭/屬性。一旦你有了構造函數,你就可以調用它。簡單!
System.Reflection.Assembly
是您希望使用的類。它包含許多用於遍歷包含在用戶DLL中的類型的方法。您可以通過每個類遍歷,也許看它是否從一個特定的接口等
http://msdn.microsoft.com/en-us/library/system.reflection.assembly_members.aspx
繼承調查Assembly.GetTypes()
方法獲得的類型只有公立列表,或Assembly.GetExportedTypes()
。
正如已經說過的,你需要戳一下System.Reflection命名空間。
如果您事先知道要加載的DLL的位置/名稱,則需要遍歷Assembly.GetTypes()。
在僞代碼中,它看起來像這樣:
創建和裝配對象。
遍歷程序集中包含的所有類型。
一旦你找到你所尋找的,調用它(的CreateInstance)的一個...
使用它明智。
;)
我有足夠的反射代碼,如果你想看看周圍,但任務很簡單,並在野外至少有文章一打的樣品在那裏。 (又名谷歌)。 儘管如此,MSDN是您的反射參考的朋友。
- 1. 知道對象的類名時創建對象的問題
- 2. 創建一個只知道類名的對象?
- 3. 在知道C#中部分類名時動態創建對象
- 4. 如何在事先不知道計數時創建對象
- 5. Excel VBA:在不知道對象類型時通過名稱引用對象
- 6. 類設計 - 從字符串數據創建一個對象?
- 7. 重寫超類如何知道方法而不創建對象
- 8. 知道一個對象C#
- 9. DDD對象創建設計
- 10. 從軌道中的另一個對象創建一個對象
- 11. 在一個對象中創建一個對象類
- 12. 如何在僅在運行時知道類型的情況下創建對象?
- 13. 在VB.Net使用匿名對象類型創建一個通用類對象
- 14. 以不同方式從另一個對象創建對象的設計模式
- 15. 初學者C++:在運行時創建對象而不知道要創建多少對象
- 16. 如何知道何時創建和銷燬臨時對象?
- 17. 有什麼方法可以知道什麼時候創建了一個對象?
- 18. 當我知道字符偏移量時,如何創建一個範圍對象?
- 19. 在對象創建時/創建對象後設置Parse.Object.relation
- 20. 設計 - 有時一個對象是 - 一個,有時它不是
- 21. 從一個匿名對象動態創建一個對象
- 22. 知道何時通過創建子類創建類的實例?
- 23. 轉換一個對象到一個泛型類不知道類型
- 24. 如何知道對象表的對象類型名稱? (Oracle)的
- 25. 對象創建不命名
- 26. 無法創建一個匿名對象
- 27. 我不能創建一個MPMoviePlayerController類型的對象 - 未知類型
- 28. 如何使用單個屬性創建一個對象,其名稱直到運行時才能知道
- 29. 創建一個未知類型的對象
- 30. 創建一個未知類型的對象的實例和TryUpdateModel