C# 检查已编译程序集的内容
我希望有人能给我指出正确的方向。我们正在将数据库中的一些字段从int转换为bigint。这意味着我们需要将代码库中的相应字段从int更新为long。问题是我们的代码库是巨大的。我们有数百个项目,手动搜索它们会很乏味。因此,我想构建一个应用程序,当提供程序集时,它可以在所有代码中搜索特定字符串(在本例中是字段名)。我已经使用反射来调用方法和获取属性值等,但是我可以使用它来搜索编译程序集的实际代码中的值吗?值可以是任何形式的-属性、常量、方法等。我也看过ildasm,但它似乎没有为我提供搜索特定字符串值的方法。有什么想法吗?您可以使用Reflector搜索组件内部C# 检查已编译程序集的内容,c#,.net,system.reflection,ildasm,C#,.net,System.reflection,Ildasm,我希望有人能给我指出正确的方向。我们正在将数据库中的一些字段从int转换为bigint。这意味着我们需要将代码库中的相应字段从int更新为long。问题是我们的代码库是巨大的。我们有数百个项目,手动搜索它们会很乏味。因此,我想构建一个应用程序,当提供程序集时,它可以在所有代码中搜索特定字符串(在本例中是字段名)。我已经使用反射来调用方法和获取属性值等,但是我可以使用它来搜索编译程序集的实际代码中的值吗?值可以是任何形式的-属性、常量、方法等。我也看过ildasm,但它似乎没有为我提供搜索特定字符
有几种产品可以为您做到这一点: 红门反射器(),已付款 Telerik的JustDecompile(),免费 JetBrains'dotPeek(),免费
我使用反射镜主要是出于习惯,因为1)我前一段时间付了钱,2)我一直在使用它,因为它是免费的,所以很难改掉这个习惯。它还允许您将程序集直接导出到源文件中,您可以从源文件中对其进行操作。我建议您查看
Roslyn
,它是Microsofts编译器的一项服务。您可以连接到它的AST(抽象语法树),它将帮助您解析代码并搜索属性、常量、方法等。您可以在这里查看它:我想这解释了它如何变得“庞大”:/这是技术债务,您等待的时间越长,成本就越高。现在是开始重构的时候了。