C# roslyn中的if指令代码解析

C# roslyn中的if指令代码解析,c#,roslyn,roslyn-code-analysis,C#,Roslyn,Roslyn Code Analysis,我试图用Roslyn从我的CS文件中提取部分代码,我遇到了以下问题 我的C文件代码: 我的roslyn代码: MethodDeclaration语法MethodDeclaration public static void Main1(string[] args) { int test = 0; #if Condition1 test = 1; #else test =2; #endif #if Condition2 test =3;

我试图用Roslyn从我的CS文件中提取部分代码,我遇到了以下问题

我的C文件代码:

我的roslyn代码:

MethodDeclaration语法MethodDeclaration

public static void Main1(string[] args)
{
    int test = 0;
    #if Condition1
    test = 1;
    #else
    test =2;
    #endif

   #if Condition2
    test =3;
   #else
    test = 4;
  #endif

}
private void testmethod2()
{
    test1 = 1;
}
private void testmethod4()
{
    test2 = 1;
}
MethodDeclaration语法MethodDeclaration

public static void Main1(string[] args)
{
    int test = 0;
    #if Condition1
    test = 1;
    #else
    test =2;
    #endif

   #if Condition2
    test =3;
   #else
    test = 4;
  #endif

}
private void testmethod2()
{
    test1 = 1;
}
private void testmethod4()
{
    test2 = 1;
}
我的项目只有Condition1指令。仅当条件只有条件1时,您能帮助我获取代码吗


提前感谢。

您需要传递一个调用WithPreprocessorSymbols的CSharpParseOptions,以将您要定义的符号传递给解析器。

您需要传递一个调用WithPreprocessorSymbols的CSharpParseOptions,以将您要定义的符号传递给解析器。

您试图实现什么?你想过滤掉一个条件分支吗?@Ties我只想解析我的CS文件并处理解析语法树中的活动代码。你想用它实现什么?你想过滤掉一个条件分支吗?@Ties我只想解析我的CS文件并处理解析语法树中的活动代码。谢谢你的帮助,它成功了。请参考以下代码:列表预处理器SYMBOLS=新列表;preProcessorSymbols.AddCondition1;CSharpParseOptions=CSharpParseOptions.Default;//新的CSharpParseOptionLanguageVersion.CSharp6,DocumentationMode.Parse,SourceCodeKind.Regular,preProcessorSymbols;options=options.withpreprocessorsymbols preprocessorsymbols;SyntaxTree SyntaxTree=CSharpSyntaxTree.ParseTextfileContent,选项;'谢谢你的帮助,它成功了。请参考以下代码:列表预处理器SYMBOLS=新列表;preProcessorSymbols.AddCondition1;CSharpParseOptions=CSharpParseOptions.Default;//新的CSharpParseOptionLanguageVersion.CSharp6,DocumentationMode.Parse,SourceCodeKind.Regular,preProcessorSymbols;options=options.withpreprocessorsymbols preprocessorsymbols;SyntaxTree SyntaxTree=CSharpSyntaxTree.ParseTextfileContent,选项;'