有沒有更好的(性能更高或更更好的代碼;)方法來查找類型的所有派生類型?目前,我正在使用類似的東西:獲取二手裝配中的所有類型檢查所有類型的我的類型是否為“ IsAssignable”我想知道是否有更好的方法可以做到這一點?
3 回答

繁花如伊
TA貢獻2012條經(jīng)驗 獲得超12個贊
我很確定您建議的方法將是查找所有派生類型的更簡便方法。父類不存儲有關(guān)其子類是什么的任何信息(如果這樣做,那將是很愚蠢的),這意味著無法避免在此處搜索所有類型。
唯一的建議是使用該Type.IsSubclassOf
方法,而不是Type.IsAssignable
為了檢查特定類型是否派生自其他類型。盡管如此,也許仍然有您需要使用的原因Type.IsAssignable
(例如,它可以與接口一起使用)。

青春有我
TA貢獻1784條經(jīng)驗 獲得超8個贊
假設baseType包含要檢查的System.Type對象,matchType包含具有當前迭代類型(通過foreach循環(huán)或其他方法)的System.Type對象:
如果要檢查Wheather MatchType是從我要使用的baseType表示的類派生的
matchType.IsSubclassOf(baseType)
而且,如果要檢查Wheather MatchType實現(xiàn)我將使用的baseType表示的接口
matchType.GetInterface(baseType.ToString(), false) != null
當然,我會將baseType.ToString()存儲為全局變量,因此不需要一直調(diào)用它。并且由于您可能在具有許多類型的上下文中需要它,因此您也可以考慮使用System.Threading.Tasks.Parallel.ForEach-Loop來遍歷所有類型...
- 3 回答
- 0 關(guān)注
- 530 瀏覽
添加回答
舉報
0/150
提交
取消