internal MyClassInfo FindNamespaceMember(string assemblyName, string namezpace, NamespaceMembersGroups namespaceMemberGroupType, string memberName) { MyNamespaceInfo myNamespaceInfo = FindNamespace(assemblyName, namezpace); if (myNamespaceInfo == null) { return(null); } return(myNamespaceInfo.FindMember(namespaceMemberGroupType, memberName)); }
internal List <MyNamespaceInfo> FindNamespaces(string namezpace) { List <MyNamespaceInfo> namespaces = new List <MyNamespaceInfo>(); foreach (MyAssemblyInfo myAssemblyInfo in assemblies.Values) { MyNamespaceInfo myNamespaceInfo = myAssemblyInfo.FindNamespace(namezpace); if (myNamespaceInfo != null) { namespaces.Add(myNamespaceInfo); } } return(namespaces); }
internal MetaClass FindMember(string xmlMemberId) { char memberType = xmlMemberId[0]; xmlMemberId = xmlMemberId.Substring(2); switch (memberType) { case 'T': { foreach (MyAssemblyInfo myAssemblyInfo in assemblies.Values) { MyClassInfo myClassInfo = myAssemblyInfo.FindNamespaceMember(xmlMemberId); if (myClassInfo != null) { return(myClassInfo); } } break; } case 'M': { foreach (MyAssemblyInfo myAssemblyInfo in assemblies.Values) { MyInvokableMemberInfo myInvokableMemberInfo = myAssemblyInfo.FindMethodOrConstructor(xmlMemberId, true); if (myInvokableMemberInfo != null) { return(myInvokableMemberInfo); } } break; } case 'F': { foreach (MyAssemblyInfo myAssemblyInfo in assemblies.Values) { MyFieldInfo myFieldInfo = myAssemblyInfo.FindField(xmlMemberId, true); if (myFieldInfo != null) { return(myFieldInfo); } } break; } case 'P': { foreach (MyAssemblyInfo myAssemblyInfo in assemblies.Values) { MyPropertyInfo myPropertyInfo = myAssemblyInfo.FindProperty(xmlMemberId, true); if (myPropertyInfo != null) { return(myPropertyInfo); } } break; } case 'E': { foreach (MyAssemblyInfo myAssemblyInfo in assemblies.Values) { MyEventInfo myEventInfo = myAssemblyInfo.FindEvent(xmlMemberId, true); if (myEventInfo != null) { return(myEventInfo); } } break; } case 'N': { foreach (MyAssemblyInfo myAssemblyInfo in assemblies.Values) { MyNamespaceInfo myNamespaceInfo = myAssemblyInfo.FindNamespace(xmlMemberId); if (myNamespaceInfo != null) { return(myNamespaceInfo); } } break; } } return(null); }
public void ReadAdditionalDocumentation(string xmlDocPath) { string xmlDocAbsolutePath = Path.GetFullPath(xmlDocPath); XmlDocument xmlDoc = new XmlDocument(); try { xmlDoc.Load(xmlDocAbsolutePath); } catch (XmlException) { Logger.Warning("Couldn't load file with additional documentation: '{0}'.", xmlDocAbsolutePath); return; } XmlNodeList assemblyNodes = xmlDoc.GetElementsByTagName("assembly"); foreach (XmlNode assemblyNode in assemblyNodes) { XmlAttribute assemblyNameAttribute = assemblyNode.Attributes["name"]; if (assemblyNameAttribute == null) { Logger.Warning("Assembly element in additional documentation file doesn't contain required 'name' attribute."); continue; } string assemblyName = assemblyNameAttribute.Value; string assemblySummary = ""; XmlNodeList assemblySummaryNodes = assemblyNode.SelectNodes("summary"); foreach (XmlNode assemblySummaryNode in assemblySummaryNodes) { assemblySummary += assemblySummaryNode.InnerXml; } MyAssemblyInfo myAssemblyInfo = FindAssembly(assemblyName); if (myAssemblyInfo == null) { Logger.Warning("Assembly named '{0}' couldn't be found.", assemblyName); continue; } myAssemblyInfo.Summary = assemblySummary; XmlNodeList namespaceNodes = assemblyNode.SelectNodes("namespace"); foreach (XmlNode namespaceNode in namespaceNodes) { XmlAttribute namespaceNameAttribute = namespaceNode.Attributes["name"]; if (namespaceNameAttribute == null) { Logger.Warning("Namespace element in additional documentation file doesn't contain required 'name' attribute."); continue; } string namespaceName = namespaceNameAttribute.Value; string namespaceSummary = ""; XmlNodeList namespaceSummaryNodes = namespaceNode.SelectNodes("summary"); foreach (XmlNode namespaceSummaryNode in namespaceSummaryNodes) { namespaceSummary += namespaceSummaryNode.InnerXml; } MyNamespaceInfo myNamespaceInfo = myAssemblyInfo.FindNamespace(namespaceName); if (myNamespaceInfo == null) { Logger.Warning("Namespace named '{0}' couldn't be found in assembly '{1}' (or has been omitted due to lack of exported types).", namespaceName, assemblyName); continue; } myNamespaceInfo.Summary = namespaceSummary; } } }