IdentifierToken没有被击中罗斯林分析仪

问题描述 投票:1回答:1

我试图写一个需要调用拦截函数调用WaitForExternalEvent和参数到函数执行一些逻辑分析仪罗丝琳。我有一个语法树,它看起来像

Syntax tree

以代码的形式,它看起来像

 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令牌断点。是有一些限制的令牌有多深,可以吗?我应该如何去寻找有关这些电话?

c# roslyn roslyn-code-analysis
1个回答
1
投票

在我看来像你需要使用SyntaxKind.GenericName而不是SyntaxKind.IdentifierName注册的动作。然后在您的AnalyzeSyntax方法你想投的context.Node作为GenericName类型。

这就是语法展台展示我的时候我强调WaitForExternalEvent<List<Application>>

enter image description here

因此,建立这样的操作:

context.RegisterSyntaxNodeAction(AnalyzeSyntaxNode, SyntaxKind.GenericName);

和你的方法开始应该这样做:

private void AnalyzeSyntaxNode(SyntaxNodeAnalysisContext context)
{
    var syntax = context.Node as GenericNameSyntax;
}

我还是设法得到它打一个断点。 enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.