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) )); }