【C#】リフレクションで特定クラスのサブクラスをすべて取得する方法

特定クラスのサブクラスをすべて取得する方法のメモです。
Unityのエディタ拡張のときによく忘れるのでメモ。

ソースコード

System.Reflection.Assembly.GetAssembly(typeof(Example))
    .GetTypes()
    .Where(x => x.IsSubclassOf(typeof(Example)) && !x.IsAbstract)
    .ToArray();

サブクラスをインスタンス

ちなみに上記のように取得したサブクラスをインスタンス化するにはActivatorを使います。

var instance = System.Activator.CreateInstance(subClassType) as Example;