private static ParsedTypeInfo ParseClass(XElement classElement) { if (classElement != null) { var parsedClass = new ParsedTypeInfo { AssemblyQualifiedName = String.Empty, Namespace = classElement.Attribute(XmlNames.NamespaceAttribute)?.Value, Name = classElement.Attribute(XmlNames.NameAttribute)?.Value, Fields = ParseFields(classElement.Element(XmlNames.FieldsTag)), ImplementedInterfaces = ParseImplementedInterfaces(classElement.Element(XmlNames.ImplementedInterfacesTag)), InheritedTypes = ParseInheritedClasses(classElement.Element(XmlNames.InheritedClassesTag)), Methods = ParseMethods(classElement.Element(XmlNames.MethodsTag)) }; return(parsedClass); } return(null); }
private static List <TreeNode> BuildClassNode(ParsedTypeInfo classInfo) { var classNodes = new List <TreeNode>(); var classNode = new TreeNode($"<{XmlNames.ClassTag} {XmlNames.NamespaceAttribute}=\"{classInfo.Namespace}\" {XmlNames.NameAttribute}=\"{classInfo.Name}\">"); var fieldsNode = BuildFieldsTreeNode(classInfo.Fields); if (fieldsNode != null) { classNode.Nodes.AddRange(fieldsNode.ToArray()); } var methodsNode = BuildMethodsTreeNode(classInfo.Methods); if (methodsNode != null) { classNode.Nodes.AddRange(methodsNode.ToArray()); } var interfacesNode = BuildImplementedInterfaces(classInfo.ImplementedInterfaces); if (interfacesNode != null) { classNode.Nodes.AddRange(interfacesNode.ToArray()); } var inheritedClassesNode = BuildInheritedClasses(classInfo.InheritedTypes); if (inheritedClassesNode != null) { classNode.Nodes.AddRange(inheritedClassesNode.ToArray()); } classNodes.Add(classNode); classNodes.Add(new TreeNode($"</{XmlNames.ClassTag}>")); return(classNodes); }