繁体   English   中英

如何使用Roslyn在C#项目中使用各种类型

[英]How to get various types used in a C# project with Roslyn

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

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

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

  1. 上市
  2. 整型
  3. 浮动
  4. 安慰

我的问题是

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

您还需要语义-语法只是您看到的文本,而这正是您所获得的,仅此而已。 为您的项目获取一个Compilation ,然后可以调用GetSemanticModel并在其中GetSemanticModel为树,然后从那里可以调用GetTypeInfoGetSymbolInfo (根据需要,在线搜索这两者之间的区别)以获取类型信息。

就获得Compilation ,如果要编写命令行工具,则可能要使用MSBuildWorkspace加载项目。 如果要分析在Visual Studio中打开的项目,请使用VisualStudioWorkspace等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM