示例#1
0
        private static bool HasExecuteSynchronously(SyntaxNode node)
        {
            if (!SyntaxNodeUtils.TryGetInvocationExpression(node, out SyntaxNode invocationExpression))
            {
                return(false);
            }

            var argumentList = invocationExpression.ChildNodes().Where(x => x.IsKind(SyntaxKind.ArgumentList)).FirstOrDefault();

            if (argumentList != null)
            {
                foreach (SyntaxNode argument in argumentList.ChildNodes())
                {
                    var simpleMemberAccessExpression = argument.ChildNodes().Where(x => x.IsKind(SyntaxKind.SimpleMemberAccessExpression)).FirstOrDefault();

                    if (simpleMemberAccessExpression != null)
                    {
                        var identifierNames = simpleMemberAccessExpression.ChildNodes().Where(x => x.IsKind(SyntaxKind.IdentifierName));

                        foreach (SyntaxNode identifier in identifierNames)
                        {
                            if (identifier.ToString().Equals("ExecuteSynchronously"))
                            {
                                return(true);
                            }
                        }
                    }
                }
            }

            return(false);
        }