在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. wxPython子類從類中獲取屬性
- 3. 從父類獲取子類名稱
- 4. 獲取子類類型
- 5. 如何從System.Web.UI.Control(基類)獲取值?
- 6. 獲取子類名?
- 7. 獲取一個基類的子類的實例
- 8. 從基類中訪問一個不返回值的子類的獲取方法
- 9. 如何從Delphi中的子類獲取指向基類中方法的指針?
- 10. 從Python中的基類導入子類
- 11. C++:從基類實例構造子類?
- 12. 如何從子類中訪問基類?
- 13. 如何從基類中獲得子類的`Type`
- 14. 獲取基類的名字?
- 15. 從類中獲取類型
- 16. 從兩個類別獲取Wordpress帖子
- 17. 從HTML子類中獲取數據
- 18. 從子類中獲取元素
- 19. 從類別陣列獲取帖子
- 20. Java:如何從子類獲取價值?
- 21. 從RadioButtonList子類中獲取SelectedValue
- 22. 從NHibernate投影中獲取子類型
- 23. 從數組中獲取子類
- 24. 獲取NSRange從子類UIPasteboard選擇
- 25. C#從子類獲取詳細信息
- 26. 從類的基類捕獲的異常
- 27. 基於類獲取元素的子基數?
- 28. 如何從基類中獲取類的名稱?
- 29. 如何從C派生類中獲取基類的名稱
- 30. 的Python:從派生類中獲取基類值
謝謝。有用。 – 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