Я пытаюсь написать анализатор Roslyn, который должен перехватывать вызовы вызова функции WaitForExternalEvent
и выполнять некоторую логику с аргументами этой функции.У меня есть синтаксическое дерево, которое выглядит как
![Syntax tree](https://i.stack.imgur.com/7FJdC.png)
В кодовой форме это выглядит как
public static class HireEmployee
{
[FunctionName("HireEmployee")]
public static async Task<Application> RunOrchestrator(
[OrchestrationTrigger] DurableOrchestrationContext context,
ILogger log)
{
var applications = context.GetInput<List<Application>>();
var approvals = await context.WaitForExternalEvent<List<Application>>("ApplicationsFiltered");
log.LogInformation($"Approval received. {approvals.Count} applicants approved");
return approvals.OrderByDescending(x => x.Score).First();
}
...
Когда я регистрирую действие дляэто я делаю так, как
context.RegisterSyntaxNodeAction(AnalyzeSyntax, SyntaxKind.IdentifierName);
Точка останова в моем методе AnalyzeSyntax
Я бью точки останова для токенов IdentifierName, но никогда для токена WaitForExternalEvent
.Есть ли предел тому, насколько глубокими могут быть токены?Как мне найти эти звонки?