public override MetadataItem VisitAssembly(IAssemblySymbol symbol) { var item = new MetadataItem { Name = symbol.GetRawId(), RawComment = symbol.GetDocumentationCommentXml(), DisplayName = symbol.MetadataName, Type = MemberType.Assembly, }; var namespaces = symbol.GlobalNamespace.GetNamespaceMembers(); item.Items = VisitDescendants( namespaces, ns => ns.GetMembers().OfType <INamespaceSymbol>(), ns => ns.GetMembers().OfType <INamedTypeSymbol>().Any(t => ApiFilter.CanVisitApi(t)) ); return(item); }