任何使GetTypes()不那么脆弱的方法

时间:2010-05-24 17:15:52

标签: assemblies c#-4.0 gac

我正在迭代GAC,GAC_32和GAC_MSIL中的所有类型寻找特定类型,从根本上匹配源代码中使用子句的那些,所以当我编译源代码时。我将确切知道要提供的汇编dll。

我从每个目录中获取所有文件名,并将GetTypes应用于每个目录 反过来汇编并将返回的类型与我的使用列表进行比较。但问题是我 当它无法加载类型时,GetTypes()会因异常而不断出现问题 从加载的程序集。

他们有什么方法可以让GetTypes()变得不那么脆弱。例如,在我的盒子上解析这个程序集时,{blbmmc,Version = 6.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35},它就会崩溃。

欢迎任何建议。

我知道这是一个相当长的过程,但我想最终会使用常用程序集的子集来搜索,或者可能在程序启动时缓存类型列表 - >程序集dll名称。

感谢。

1 个答案:

答案 0 :(得分:0)

继续我的原始评论,我建议您有一个实际需要的程序集列表,而不是搜索它们。

此外,在代码生成的上下文中,我不知道您的任务的范围,但是当我需要从特定XML Schema生成的类时,我发现我的项目非常方便using the CodeDOM

但是对于像''动态创建方法'Expression Trees这样的任务来说真是太棒了。 (特别是在.NET 4.0中)