ArchiMetrics.CodeReview.Rules.Code.ServiceLocatorInvocationInTestRule.EvaluateImpl C# (CSharp) Метод

EvaluateImpl() защищенный Метод

protected EvaluateImpl ( Microsoft.CodeAnalysis.SyntaxNode node ) : EvaluationResult
node Microsoft.CodeAnalysis.SyntaxNode
Результат EvaluationResult
		protected override EvaluationResult EvaluateImpl(SyntaxNode node)
		{
			var memberAccess = (MemberAccessExpressionSyntax)node;
			if (memberAccess.Expression.IsKind(SyntaxKind.SimpleMemberAccessExpression)
				&& ((MemberAccessExpressionSyntax)memberAccess.Expression).Expression.IsKind(SyntaxKind.IdentifierName)
				&& ((IdentifierNameSyntax)((MemberAccessExpressionSyntax)memberAccess.Expression).Expression).Identifier.ValueText == "ServiceLocator"
				&& memberAccess.Name.Identifier.ValueText == "Resolve")
			{
				var methodParent = FindMethodParent(node) as MethodDeclarationSyntax;
				if (methodParent != null
					&& methodParent.AttributeLists.Any(l => l.Attributes.Any(a => a.Name is SimpleNameSyntax && ((SimpleNameSyntax)a.Name).Identifier.ValueText.IsKnownTestAttribute())))
				{
					var snippet = methodParent.ToFullString();

					return new EvaluationResult
							   {
								   Snippet = snippet, 
							   };
				}
			}

			return null;
		}
	}
ServiceLocatorInvocationInTestRule