11
class Foo { }
class Foo1 : Foo { }
class Foo2 : Foo { }
我怎麼能夠得到所有使用美孚作爲基類的類?在同一個程序集中,繼承的類不是必需的。如何獲取基類的所有繼承類?
class Foo { }
class Foo1 : Foo { }
class Foo2 : Foo { }
我怎麼能夠得到所有使用美孚作爲基類的類?在同一個程序集中,繼承的類不是必需的。如何獲取基類的所有繼承類?
這並不快,但只要Foo
是一個具體類型(不是接口),那麼它應該工作。本代碼不返回Foo
。
AppDomain.CurrentDomain.GetAssemblies()
.SelectMany(assembly => assembly.GetTypes())
.Where(type => type.IsSubclassOf(typeof(Foo)));
我不認爲有更快的方法來做到這一點。 – SLaks 2009-11-03 04:03:16
在設計或運行時?如果設計,那麼你可以參考這個問題的一些提示http://stackoverflow.com/questions/282377/visual-studio-how-do-i-show-all-classes-inherited-from-a-base-class – 2009-11-03 03:48:24
在運行時,謝謝。 – Carlsberg 2009-11-03 03:50:27