private static CheckForCondition ( SyntaxNodeAnalysisContext context, InvocationExpressionSyntax invocationNode, Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionStatementSyntax expressionStatementParent, Microsoft.CodeAnalysis.DiagnosticDescriptor descriptor ) : void | ||
context | SyntaxNodeAnalysisContext | |
invocationNode | InvocationExpressionSyntax | |
expressionStatementParent | Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionStatementSyntax | |
descriptor | Microsoft.CodeAnalysis.DiagnosticDescriptor | |
Résultat | void |
private static void AnalyzeInvocation(SyntaxNodeAnalysisContext context) { // http://stackoverflow.com/questions/29614112/how-to-get-invoked-method-name-in-roslyn var invocationNode = (InvocationExpressionSyntax)context.Node; var invocationSymbol = context.SemanticModel.GetSymbolInfo(invocationNode.Expression).Symbol; if ((invocationSymbol?.ContainingType?.IsBusinessBase() ?? false)) { if (context.CancellationToken.IsCancellationRequested) { return; } if (invocationSymbol?.Name == "Save") { FindSaveAssignmentIssueAnalyzer.CheckForCondition(context, invocationNode, invocationNode.Parent, FindSaveAssignmentIssueAnalyzer.saveResultIsNotAssignedRule); } else if (invocationSymbol?.Name == "SaveAsync") { FindSaveAssignmentIssueAnalyzer.CheckForCondition(context, invocationNode, invocationNode.Parent?.Parent, FindSaveAssignmentIssueAnalyzer.saveAsyncResultIsNotAssignedRule); } } }
private static void AnalyzeInvocation(SyntaxNodeAnalysisContext context) { // http://stackoverflow.com/questions/29614112/how-to-get-invoked-method-name-in-roslyn var invocationNode = (InvocationExpressionSyntax)context.Node; if (!invocationNode.ContainsDiagnostics) { var invocationSymbol = context.SemanticModel.GetSymbolInfo(invocationNode.Expression).Symbol; if ((invocationSymbol?.ContainingType?.IsBusinessBase() ?? false)) { context.CancellationToken.ThrowIfCancellationRequested(); var expressionStatementNode = invocationNode.FindParent <ExpressionStatementSyntax>(); if (invocationSymbol?.Name == Constants.SaveMethodNames.Save) { FindSaveAssignmentIssueAnalyzer.CheckForCondition(context, invocationNode, expressionStatementNode, FindSaveAssignmentIssueAnalyzer.saveResultIsNotAssignedRule); } else if (invocationSymbol?.Name == Constants.SaveMethodNames.SaveAsync) { FindSaveAssignmentIssueAnalyzer.CheckForCondition(context, invocationNode, expressionStatementNode, FindSaveAssignmentIssueAnalyzer.saveAsyncResultIsNotAssignedRule); } } } }