C# 检查已编译程序集的内容

C# 检查已编译程序集的内容,c#,.net,system.reflection,ildasm,C#,.net,System.reflection,Ildasm,我希望有人能给我指出正确的方向。我们正在将数据库中的一些字段从int转换为bigint。这意味着我们需要将代码库中的相应字段从int更新为long。问题是我们的代码库是巨大的。我们有数百个项目,手动搜索它们会很乏味。因此,我想构建一个应用程序,当提供程序集时,它可以在所有代码中搜索特定字符串(在本例中是字段名)。我已经使用反射来调用方法和获取属性值等,但是我可以使用它来搜索编译程序集的实际代码中的值吗?值可以是任何形式的-属性、常量、方法等。我也看过ildasm,但它似乎没有为我提供搜索特定字符

我希望有人能给我指出正确的方向。我们正在将数据库中的一些字段从int转换为bigint。这意味着我们需要将代码库中的相应字段从int更新为long。问题是我们的代码库是巨大的。我们有数百个项目,手动搜索它们会很乏味。因此,我想构建一个应用程序,当提供程序集时,它可以在所有代码中搜索特定字符串(在本例中是字段名)。我已经使用反射来调用方法和获取属性值等,但是我可以使用它来搜索编译程序集的实际代码中的值吗?值可以是任何形式的-属性、常量、方法等。我也看过ildasm,但它似乎没有为我提供搜索特定字符串值的方法。有什么想法吗?

您可以使用Reflector搜索组件内部


有几种产品可以为您做到这一点:

红门反射器(),已付款

Telerik的JustDecompile(),免费

JetBrains'dotPeek(),免费


我使用反射镜主要是出于习惯,因为1)我前一段时间付了钱,2)我一直在使用它,因为它是免费的,所以很难改掉这个习惯。它还允许您将程序集直接导出到源文件中,您可以从源文件中对其进行操作。

我建议您查看
Roslyn
,它是Microsofts编译器的一项服务。您可以连接到它的AST(抽象语法树),它将帮助您解析代码并搜索属性、常量、方法等。您可以在这里查看它:我想这解释了它如何变得“庞大”:/这是技术债务,您等待的时间越长,成本就越高。现在是开始重构的时候了。