我需要一种方法来过滤我的程序集以获取所有类,从泛型类继承。我找到了一些帖子,但他们最喜欢如何检查的继承(例如How to check if a class inherits another class without instantiating it?和Check if a class is derived from a generic class)。但这些帖子并没有帮助我。查找使用反射继承泛型类的类
我所有的类都继承自一个特定的类,称为BaseRepository<T>
,但某些类可以继承自InterventionBaseRepository<T>
(它也继承自BaseRepository<T>
)。我需要找到他们。这是我的代码至今:
var q = from t in Assembly.GetExecutingAssembly().GetTypes()
where t.IsClass &&
(t.Namespace != null &&
t.Namespace.StartsWith("AgroWeb.Core.Data.Repository"))
select t;
因此,简而言之,上述查询通过命名空间,我需要它们之间找到那些谁InterventionBaseRepository<T>
继承得到我的所有类。
必须找到一个类的签名的例子:
public class CityRepository : InterventionBaseRepository<City>, ICityRepository
而且InterventionBaseRepository
声明:
public class InterventionBaseRepository<T> : BaseRepository<T>
where T : Entity
我试图用IsAssignableFrom()
在上面的链接的帖子为说像这样的查询:
t.IsAssignableFrom(typeof(InterventionBaseRepository<Entity>))
你可以在'IsAssignableFrom'上显示你的尝试吗? –
您是否正确地获取了IsAssignableFrom()?即abstraction.IsAssignableFrom(专精) –
@JamesLucas这也是我的想法。它应该工作。 OP需要显示他的代码。 –