2

有没有办法使用 linq 和反射查询有多少类继承了一个类?例如。如何知道 System.Web.Mvc.dll 中继承自 System.Web.Mvc.ActionResult 的类

4

2 回答 2

1

您可以使用两种方法来做到这一点,1. IsAssignableFrom, 2. assembly.GetTypes

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 回答