【发布时间】:2020-05-15 08:45:09
【问题描述】:
我想分析类似的东西
public void GetDetails()
{
try
{
//some code
}
catch()
{
//some code
}
}
在 Roslyn Analyzer 项目中,我有如下内容:
public override void Initialize(AnalysisContext context)
{
context.RegisterSyntaxNodeAction(AnalyzeCode, SyntaxKind.MethodDeclaration);
}
private void AnalyzeCode(SyntaxNodeAnalysisContext context)
{
//I want here something like below
context.RegisterSyntaxNodeAction(ctx =>
{
//set some flag
}, SyntaxKind.TryStatement);
//similar for catch block
}
所以根据标志我可以确定 try catch 是否存在。
我想通过在 AnalyzeCode() 方法中编写代码来查找 GetDetails() 方法中存在的 'try' 和 'catch' 语句,这样它应该只扫描方法声明。
注意:注释行应被忽略。
提前致谢。
【问题讨论】:
标签: c# visual-studio roslyn roslyn-code-analysis