簡體   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