在 C# 中解析 VB.Net 代码库

Parsing VB.Net codebase in C#

我正在开发一个 VB.NET 代码库,它使用与匈牙利语 Notiation 模糊相似的旧命名约定,例如:

为了验证变量的命名是否正确,并为每个不一致的变量名制定解决方案,我需要在代码库中找到任何变量实例,以及它们的范围和类型。

我已经使用正则表达式进行了一些测试来查找函数和子变量,但是 class 成员变量的实例(例如)很难以这种方式进行,更不用说解析代码了正则表达式感觉不正确。

有没有一种方法(在 C# 中)我可以从代码库创建某种结构化的层次结构 而无需 从头开始​​,或者有更好的方法来实现这个目标一般来说?

抱歉,如果我的解释是 wrong/vague,我之前没有尝试过解析语言。

即使在 VB6 时代,匈牙利表示法也被认为是非常糟糕的做法。你问的是需要代码分析。

正则表达式是不够的。您可以使用 Resharper 等工具使用其 SDK 查找甚至重命名变量,尽管可能有一些插件已经可以满足您的需求。在 .NET vNext 中,Roslyn 编译器将允许您开箱即用地执行此操作。如果您不想使用 Resharper,也许您可​​以尝试使用 VS2015 CTP 6 创建一个快速实用的实用程序。

您可以从 Roslyn 的 GitHub repository, it contains several samples that show how to write analyzers, refactorings etc, as well as documentation on syntax and semantic analysis. Also check Kathleen Dollard's RoslynDOM 库开始,它显着简化了编码