Ejemplo n.º 1
0
        internal MyNamespaceInfo FindNamespace(string assemblyName, string namezpace)
        {
            MyAssemblyInfo myAssemblyInfo = FindAssembly(assemblyName);

            if (myAssemblyInfo == null)
            {
                return(null);
            }

            return(myAssemblyInfo.FindNamespace(namezpace));
        }
Ejemplo n.º 2
0
        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;
                }
            }
        }