0

既存の C# ライブラリを Java に変換することについて分析しています。まず、既存の C# ライブラリで使用されている型/組み込みキーワードを知る必要があります。つまり、たとえば

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

このクラスで使用されるタイプ/キーワードは、

  1. 公衆
  2. 整数
  3. 浮く
  4. コンソール

私の質問は、

  1. これを行う方法はありますか。Roslynでこれができることを願っています。しかし、変数の「LocalDeclarationStatementSyntax」を取得できます。しかし、「Console」と「Concat」を解析する方法。クラス内のすべてのトークンを解析する「Sytax walker」が唯一の選択肢ですか?
  2. また、Roslyn を使用してプロジェクト ファイルからすべてのクラスを取得する方法は?
4

1 に答える 1

3

セマンティクスも必要です。構文は、表示されるテキストにすぎず、それがまさに得られるものであり、それ以上でもそれ以下でもありません。Compilationプロジェクトの を取得するGetSemanticModelと、ツリーを指定した場所で呼び出して、そこからGetTypeInfoorを呼び出しGetSymbolInfoて (必要に応じて、これら 2 つの違いをオンラインで検索して) 型情報を取得できます。

を取得する限りCompilation、コマンド ライン ツールを作成している場合は、おそらくMSBuildWorkspaceプロジェクトをロードするために使用したいと思うでしょう。Visual Studio で開いているプロジェクトを分析している場合はVisualStudioWorkspace、 などを使用します。

于 2016-01-28T18:52:52.813 に答える