private void AnalyzeDispatchEntityName(SyntaxNodeAnalysisContext context) { var expression = context.Node as MemberAccessExpressionSyntax; if (expression != null) { var name = expression.Name; if (name.ToString().StartsWith("DispatchAsync")) { if (SyntaxNodeUtils.TryGetTypeArgumentList(expression, out SyntaxNode identifierNode)) { if (SyntaxNodeUtils.TryGetClassSymbol(expression, context.SemanticModel, out INamedTypeSymbol classSymbol)) { var className = classSymbol.Name.ToString(); if (!string.Equals(className, identifierNode.ToString())) { var diagnostic = Diagnostic.Create(Rule, identifierNode.GetLocation(), identifierNode, className); context.ReportDiagnostic(diagnostic); } } } } } }
private string GetReturnTypeNameFromCallActivityInvocation(SyntaxNodeAnalysisContext context, InvocationExpressionSyntax invocationExpression) { if (SyntaxNodeUtils.TryGetTypeArgumentList((MemberAccessExpressionSyntax)invocationExpression.Expression, out SyntaxNode identifierNode)) { var returnType = context.SemanticModel.GetTypeInfo(identifierNode).Type; return("System.Threading.Tasks.Task<" + GetQualifiedTypeName(returnType) + ">"); } return("System.Threading.Tasks.Task"); }