0

我正在分析将现有的 C# 库转换为 java。首先,我需要知道现有 C# 库中使用的类型/内置关键字是什么。我的意思是,例如

public class CSharpClass
{
int i;
float j;
Console.Writeline(String.Concat("A","B"));
}

在这个类中,使用的类型/关键字是,

  1. 上市
  2. 整数
  3. 漂浮
  4. 安慰
  5. 细绳

我的问题是,

  1. 有没有办法做到这一点。我希望我能和罗斯林一起做这件事。但是我们可以获得变量的“LocalDeclarationStatementSyntax”。但是如何解析“Console”和“Concat”。解析类中所有标记的“Sytax walker”是唯一的选择吗?
  2. 还有如何使用 Roslyn 从项目文件中获取所有类?
4

1 回答 1

3

你也需要语义——语法就是你看到的文本,这正是你得到的,不多也不少。Compilation为你的项目获取一个,然后你可以GetSemanticModel在你给它的地方调用一个树,然后你可以从那里调用GetTypeInfoGetSymbolInfo(酌情在网上搜索这两者之间的区别)来获取类型信息。

至于获取Compilation,如果您正在编写一个命令行工具,您可能希望使用它MSBuildWorkspace来加载您的项目。如果您正在分析在 Visual Studio 中打开的项目,请使用VisualStudioWorkspace等。

于 2016-01-28T18:52:52.813 回答