ArchiMetrics.Analysis.Metrics.TypeCollector.GetTypes C# (CSharp) Method

GetTypes() public method

public GetTypes ( Microsoft.CodeAnalysis.SyntaxNode namespaceNode ) : IEnumerable
namespaceNode Microsoft.CodeAnalysis.SyntaxNode
return IEnumerable
		public IEnumerable<TypeDeclarationSyntax> GetTypes(SyntaxNode namespaceNode)
		{
			var innerCollector = new InnerTypeCollector();
			return innerCollector.GetTypes(namespaceNode);
		}

Usage Example

		private static IEnumerable<TypeDeclaration> GetTypeDeclarations(NamespaceDeclaration namespaceDeclaration)
		{
			var collector = new TypeCollector();
			return namespaceDeclaration.SyntaxNodes
				.Select(info =>
				{
					Func<TypeDeclarationSyntax, TypeDeclarationSyntaxInfo> selector =
						x => new TypeDeclarationSyntaxInfo(info.CodeFile, x.SyntaxTree == null ? x.Identifier.ValueText : x.GetName(x.SyntaxTree.GetRoot()), x);
					return new { info, selector };
				})
				.SelectMany(x => collector.GetTypes(x.info.Syntax).Select(x.selector))
				.GroupBy(x => x.Name)
				.Select(x => new TypeDeclaration { Name = x.Key, SyntaxNodes = x });
		}
TypeCollector