使用反射来获取静态类的列表

Chr*_*ert 7 c# reflection static

很多问题都很接近,但没有人回答我的问题......

如何在C#3.5中使用反射来获取程序集中的所有静态类.我已经定义了所有类型,但没有IsStatic属性.计数0构造函数非常慢,也无法正常工作.

任何提示或一行代码?:-)

克里斯

kem*_*002 14

以下是从汇编中获取类型的方法:

http://msdn.microsoft.com/en-us/library/system.reflection.assembly.aspx

GetTypes方法

然后:

寻找同时抽象和密封的类.

http://dotneteers.net/blogs/divedeeper/archive/2008/08/04/QueryingStaticClasses.aspx

在博客中搜索我可以找到.NET CLR不知道静态类的想法的信息,但是允许同时使用抽象和密封类型标志.CLR还使用这些标志来优化其行为,例如,使用密封标志调用密封类的虚拟方法,如非虚拟方法.因此,要询问某个类型是否为静态,您可以使用以下方法:

从下面的评论:

IEnumerable<Type> types = typeof(Foo).Assembly.GetTypes().Where
(t => t.IsClass && t.IsSealed && t.IsAbstract);
Run Code Online (Sandbox Code Playgroud)