我需要检索从一组给定的集合加载的所有枚举。如何获取C#中所有加载类型的列表?
5
A
回答
10
List<Type> list = new List<Type>();
foreach (Assembly ass in AppDomain.CurrentDomain.GetAssemblies())
{
foreach (Type t in ass.GetExportedTypes())
{
if (t.IsEnum)
{
list.Add(t);
}
}
}
这应该做的,对于当前的AppDomain加载,所有的组件刚刚从定义组件获得,只需调整;-)
+1
有趣的部分(发音):“只是调整”:) – 2014-03-04 16:28:32
3
假设你已经要检查Assembly
对象列表:
IEnumerable<Assembly> assemblies; // assign the assemblies you want to check here
foreach (Assembly a in assemblies) {
foreach (Type t in assembly.GetTypes()) {
if (t.IsEnum) {
// found an enum! Do whatever...
}
}
}
2
你应该能够使用Assembly.GetTypes()
让所有类型的组件。对于每种类型,您可以使用Type.IsEnum
属性来查看它是否为枚举。
3
您还可以使用LINQ从返回所有枚举类型的列表程序集列表。
IEnumerable<Assembly> assemblies;
// give assemblies some value
var enums = from assembly in assemblies let types = assembly.GetTypes() from type in types where type.IsEnum select type;
enums
将是IEnumerable类型。
2
这里是一个更实用的解决方案:
AppDomain.CurrentDomain.GetAssemblies()
.SelectMany(a => a.GetTypes())
.Where(t => t.IsEnum)
相关问题
- 1. 获取FxCop中所有加载类型的列表
- 2. 从C++中的Mono Assembly.dll获取所有类型/类的列表
- 3. 获取所有表的列和类型
- 4. 如何获取列表中特定类型的所有对象?
- 5. 如何获取Drupal 6中所有内容类型的列表?
- 6. 获取JVM中所有类加载器的列表
- 7. 如何从所有Jenkins项目类型中获取列表
- 8. 如何获取所有类型的Virtus属性的列表?
- 9. 如何获得c#上所有SQl数据类型的列表?
- 10. 通过JMX获取所有加载的类的列表
- 11. 如何获取所有ember-data模型类的列表?
- 12. 如何获取所有当前加载的程序集列表?
- 13. 获取某种字符串类型的所有类型列表
- 14. 如何使用CoreClr获取加载的程序集中的所有类型?
- 15. 如何从C#中的DLL中获取类型列表?
- 16. 如何从表中获取列类型?
- 17. 如何获得飞镖中所有加载库的列表?
- 18. SQL Server查询获取表中所有列的数据类型?
- 19. 如何获取对象类型列表中的值C#
- 20. 获取所有型号的列表
- 21. 如何使用C#获取Active Directory中所有域的列表
- 22. 如何获取GetEventStore中所有类别的列表?
- 23. 从抽象类型列表中获取某种类型的所有项目
- 24. 获取所有本地类的列表
- 25. android dexclassloader获取所有类的列表
- 26. 如何获取CMake中所有添加的子目录列表
- 27. 如何在StructureMap中获取所有可能的泛型类型?
- 28. Android:获取特定类型的所有文件的列表
- 29. 获取网页上加载的所有JS文件的列表
- 30. 如何获得所有文档类型的列表
什么是“载入的”呢?你可以给出一个没有加载的类型与加载的类型的例子吗? – 2009-12-16 15:12:20