Пример #1
0
        /// <summary>
        /// Infers documentation by reading any Doc attributes found in the
        /// specified assembly as well as reading the xml documentation file
        /// if it exists
        /// </summary>
        /// <param name="assembly"></param>
        /// <param name="precedence"></param>
        /// <returns></returns>
        public static Dictionary <string, List <DocInfo> > Infer(Assembly assembly, DocumentationPrecedence precedence = DocumentationPrecedence.Xml)
        {
            Args.ThrowIfNull(assembly, "assembly");

            Dictionary <string, List <DocInfo> > results = new Dictionary <string, List <DocInfo> >();

            Infer(results, assembly, precedence);

            return(results);
        }
Пример #2
0
        public static void AddDocInfos(Dictionary <string, List <DocInfo> > results, FileInfo xmlFile, DocumentationPrecedence precedence = DocumentationPrecedence.Xml)
        {
            if (TryFromXmlFile(xmlFile, out Dictionary <string, List <DocInfo> > xmlResults))
            {
                xmlResults.Keys.Each(typeName =>
                {
                    if ((results.ContainsKey(typeName) && precedence == DocumentationPrecedence.Xml) ||
                        !results.ContainsKey(typeName))
                    {
                        if (!results.ContainsKey(typeName))
                        {
                            results.Add(typeName, new List <DocInfo>());
                        }

                        results[typeName].AddRange(xmlResults[typeName]);
                    }
                });
            }
        }
Пример #3
0
        public static void Infer(Dictionary <string, List <DocInfo> > results, Assembly assembly, DocumentationPrecedence precedence = DocumentationPrecedence.Xml)
        {
            FileInfo assemblyFileInfo = new FileInfo(assembly.Location);

            assembly.GetTypes().Each(type =>
            {
                AddDocInfos(results, type);
            });

            string   name        = Path.GetFileNameWithoutExtension(assemblyFileInfo.FullName);
            string   xmlFilePath = Path.Combine(assemblyFileInfo.Directory.FullName, $"{name}.xml");
            FileInfo xmlFile     = new FileInfo(xmlFilePath);

            if (xmlFile.Exists)
            {
                AddDocInfos(results, xmlFile, precedence);
            }
        }