private void AnalyzeMemberAccessExpressionsCsharp(SyntaxNodeAnalysisContext context)
        {
            var memberAccessExpression = (CSSyntax.MemberAccessExpressionSyntax)context.Node;

            // If the accessed member isn't named "Current" bail out
            if (!TargetMember.Equals(memberAccessExpression.Name.Identifier.ValueText, StringComparison.Ordinal))
            {
                return;
            }

            // If the call is to a method called Current then bail out since they're
            // not using the HttpContext.Current property
            if (memberAccessExpression.Parent is CSSyntax.InvocationExpressionSyntax)
            {
                return;
            }

            // Get the identifier accessed
            var accessedIdentifier = memberAccessExpression.Expression switch
            {
                CSSyntax.IdentifierNameSyntax i => i,
                CSSyntax.MemberAccessExpressionSyntax m => m.DescendantNodes().OfType <CSSyntax.IdentifierNameSyntax>().LastOrDefault(),
                _ => null
            };

            AnalyzeMemberAccessExpressions(context, memberAccessExpression, accessedIdentifier, accessedIdentifier?.Identifier.ValueText);
        }
 public override VisualBasicSyntaxNode VisitMemberAccessExpression(CSS.MemberAccessExpressionSyntax node)
 {
     return(SyntaxFactory.MemberAccessExpression(
                SyntaxKind.SimpleMemberAccessExpression,
                (ExpressionSyntax)node.Expression.Accept(this),
                SyntaxFactory.Token(SyntaxKind.DotToken),
                (SimpleNameSyntax)node.Name.Accept(this)
                ));
 }