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

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

protected EvaluateImpl ( Microsoft.CodeAnalysis.SyntaxNode node ) : EvaluationResult
node Microsoft.CodeAnalysis.SyntaxNode
Результат EvaluationResult
		protected override EvaluationResult EvaluateImpl(SyntaxNode node)
		{
			var classDeclaration = (ClassDeclarationSyntax)node;
			if (classDeclaration.BaseList != null
				&& (classDeclaration.BaseList.Types.Any(x => x.Type.IsKind(SyntaxKind.IdentifierName)) || classDeclaration.BaseList.Types.Any(x => x.Type.IsKind(SyntaxKind.GenericName))))
			{
				var s = classDeclaration.BaseList.Types.First(x => x.Type.IsKind(SyntaxKind.IdentifierName) || x.Type.IsKind(SyntaxKind.GenericName));
				if (((SimpleNameSyntax)s.Type).Identifier.ValueText.StartsWith("I")
					&& classDeclaration.Modifiers.Any(SyntaxKind.PublicKeyword))
				{
					var interfaceName = ((SimpleNameSyntax)s.Type).Identifier.ValueText;
					if (!IsKnownInterface(interfaceName))
					{
						var snippet = classDeclaration.ToFullString();

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

			return null;
		}
PublicInterfaceImplementationWarningRule