在C#中可以從基類獲取子類的類型嗎?從基類獲取子類
Q
從基類獲取子類
17
A
回答
23
不是直接的,但是您可以使用獲取當前加載的所有程序集,然後使用Assembly.GetTypes()獲取該程序集中的所有類型。然後使用Type.IsSubclassOf()來確定它是否是您之後類型的子類。
4
您可以選擇您要檢查,獲得與方法Assembly.GetTypes()
並測試他們每個人的類型,大會如果是帶Type.IsSubclassOf()
看到Assembly members一個子類,Type members
19
你可以這樣做:
var subclassTypes = Assembly
.GetAssembly(typeof(BaseClass))
.GetTypes()
.Where(t => t.IsSubclassOf(typeof(BaseClass)));
3
試試這個代碼:
public static IEnumerable<Type> GetAllSubclassOf(Type parent)
{
foreach (var a in AppDomain.CurrentDomain.GetAssemblies())
foreach (var t in a.GetTypes())
if (t.IsSubclassOf(parent)) yield return t;
}
相關問題
- 1. 從基類獲取子類屬性
- 2. 從子/子/繼承類獲取基類/父級/超級類
- 3. 獲取基類的當前子類
- 4. 在django中從抽象基類中獲取子類型
- 5. 從子類Java獲取值
- 6. 從父類獲取子類名稱
- 7. 從子類獲取父類的字段
- 8. 從類別id獲取子類別Magento
- 9. wxPython子類從類中獲取屬性
- 10. Google App Engine基礎和子類獲取
- 11. 獲取子類
- 12. 獲取子類
- 13. 獲取子類類型
- 14. 從靜態方法獲取類類型(在基類上)
- 15. 如何從System.Web.UI.Control(基類)獲取值?
- 16. 獲取子類名?
- 17. 獲取一個基類的子類的實例
- 18. 如何從子類中訪問基類?
- 19. 從基類訪問子類變量
- 20. C++:從基類實例構造子類?
- 21. 從Python中的基類導入子類
- 22. 從基類構造子類struct
- 23. 從基類中訪問一個不返回值的子類的獲取方法
- 24. 如何從Delphi中的子類獲取指向基類中方法的指針?
- 25. 從基類__init__的子類__init__調用基類方法?
- 26. 基於jQuery類獲取前類數
- 27. 獲取模板基類的類型
- 28. 如何從基類中獲得子類的`Type`
- 29. Pykka:獲取Actor的基類
- 30. LINQ - 獲取基於類型
謝謝。有用。 – Polaris 2010-04-30 08:16:32
有沒有辦法只得到用戶程序集(而不是系統程序集)?如果有一個選項可以獲得這個程序集和所有引用(這個)程序集,這將是一個很好的解決方案。 – Shimmy 2012-01-13 08:15:20
找到它:http://msdn.microsoft.com/en-us/library/system.reflection.assembly.getreferencedassemblies.aspx – Shimmy 2012-01-13 08:16:03