抽象クラスの派生先は以下でとれる
code.cs
//Tは抽象クラス
var types = Assembly.GetAssembly(typeof(T))
.GetTypes()
.Where(type =>
{
return type.IsSubclassOf(typeof(T))
&& !type.IsInterface
&& !type.IsAbstract;
});
が、インターフェースの派生先はこれでは取れないので ↓
code.cs
//Tはインターフェース
var types = Assembly.GetAssembly(typeof(T))
.GetTypes()
.Where(type =>
{
return typeof(T).IsAssignableFrom(type)
&& !type.IsInterface
&& !type.IsAbstract;
});
抽象クラスとインターフェースは除外している