代码之家  ›  专栏  ›  技术社区  ›  scope_creep

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

  •  0
  • scope_creep  · 技术社区  · 15 年前

    我正在迭代GAC、GAC_32和GAC_msil中的所有类型,寻找特定的类型,从根本上匹配源代码中的那些using子句,所以在编译源代码时。我将确切知道要提供什么程序集dll。

    我从每个目录中获取所有文件名,并对每个目录应用gettypes 依次进行汇编,并将返回的类型与我的使用列表进行比较。但问题是我 have是gettypes()在无法加载类型时,不断地抛出异常 从加载的程序集。

    它们是否可以使gettypes()不那么脆弱?例如,在“我的盒子”上分析此程序集时,blbmmc,version=6.0.0.0,culture=neutral,publicKeytoken=31bf3856ad364e35,它会紧急退出。

    欢迎提出任何建议。

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

    谢谢。

    1 回复  |  直到 15 年前
        1
  •  0
  •   Regent    15 年前

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

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

    但对于“即时创建方法”之类的任务 Expression Trees 太棒了。(尤其是在.NET 4.0中)

    推荐文章