2

linq とリフレクションを使用してクラスを継承するクラスの数を照会する方法はありますか? 例えば。System.Web.Mvc.dll で System.Web.Mvc.ActionResult を継承するクラスを知る方法

4

2 に答える 2

1

IsAssignableFromこれは、1。 、2。:assembly.GetTypesの2つの方法で実行できます。

var t = typeof(System.Web.Mvc.ActionResult);
var asmb = Assembly.GetAssembly(t);
return asmb.GetTypes().Where(x=>x.IsAssignableFrom(t) && x != t);
于 2012-05-20T09:49:07.003 に答える
1

インターフェイスではなくクラスのみを取得する場合 (IsAssignablefrom はインターフェイスも返します)、試してください。

var t = typeof(System.Web.Mvc.ActionResult);
var asmb = Assembly.GetAssembly(t);//or get all assemblies you need and put next code in loop
return asmb.GetTypes().Where(x=>x.IsSubClassOf(t)).ToList();
于 2012-05-21T09:07:43.447 に答える