internal MyNamespaceInfo FindNamespace(string assemblyName, string namezpace) { MyAssemblyInfo myAssemblyInfo = FindAssembly(assemblyName); if (myAssemblyInfo == null) { return(null); } return(myAssemblyInfo.FindNamespace(namezpace)); }
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; } } }