C# 搜索方法更快

C# 搜索方法更快,c#,.net,vb.net,reflection,C#,.net,Vb.net,Reflection,我正在尝试搜索33.dll以查找方法的引用,浏览所有dll并查找引用需要10分钟以上。 有没有办法加快速度 每个dll大约有450个类,每个类大约有200个方法 我遵循的步骤是: assemblyName = System.IO.Path.GetFullPath(file) assembly = System.Reflection.Assembly.LoadFile(assemblyName) Dim types = assembly.GetTypes() For Each Type In t

我正在尝试搜索33.dll以查找方法的引用,浏览所有dll并查找引用需要10分钟以上。 有没有办法加快速度

每个dll大约有450个类,每个类大约有200个方法

我遵循的步骤是:

assemblyName = System.IO.Path.GetFullPath(file)
assembly = System.Reflection.Assembly.LoadFile(assemblyName)

Dim types = assembly.GetTypes()
For Each Type In types
  methods = Type.GetMethods()
  For Each method In methods
    'save method info, class type
  Next
Next

你可以浏览你的33个库,并将你所寻找的结果存储在数据库中。然后,与其问你的库,不如问你的数据库,它会更快,直接给你打开正确的大门…(我的意思是你可以直接指向好的库和好的类,以获得更多信息或实例化一些对象…)

我的评论不太清楚,所以我更新了我的答案

在启动新版本之前,您可以使用项目的新值填充数据库,其中的一个键引用您的版本。这样,在启动新应用程序时,您就不必等待10分钟来获取您的资料,因为您将在10分钟之前使用隐藏来填充数据库。如果应用程序重新启动,但库中没有任何更改,则信息也将保留在此处,因为版本相同


我祝你的项目好运…

我知道很多奇特的工具,包括和(这是一个伟大的工具)的使用。在某些方面,它应该比.NET反射更好


尝试一下…

感谢您的回答,但是这些库不断变化,并且不断更新,因此在数据库中存储检索到的数据有点不可行。我确实在应用程序运行时将其存储在struct类型的数组中,但如果应用程序重新启动,则需要再次搜索库。浏览所有方法都是必要的。在重建应用程序的过程中尝试获得一些持久性可能确实有点棘手。请参阅我的答案更新。反射速度非常慢。您可能需要重新设计解决方案,使其不需要使用反射。你的高层次要求是什么?也许有更好的方法来实现它。是的,说真的,你到底想做什么?谢谢你的回复。。。我试图做的是一个递归的查找VisualStudio的所有引用。因此,就像我从查找一个方法的引用开始,然后查找调用该方法的所有方法的引用,依此类推,直到我到达一个点,不再有任何方法调用这些方法(也就是说,我到达了UI层aspx.vb)有什么其他方法可以让我实现这一点的建议吗?也许Mono.Cecil更快。