Cake.Web.Docs.DocumentModelMapper.Map C# (CSharp) Метод

Map() публичный статический Метод

Generates a document model from a ReflectionModel and a XmlDocumentationModel.
public static Map ( Cake.Web.Docs.Reflection.Model.ReflectionModel reflectionModel, Cake.Web.Docs.Xml.Model.XmlDocumentationModel xmlModel ) : Cake.Web.Docs.DocumentModel
reflectionModel Cake.Web.Docs.Reflection.Model.ReflectionModel The reflection model.
xmlModel Cake.Web.Docs.Xml.Model.XmlDocumentationModel The XML documentation model.
Результат Cake.Web.Docs.DocumentModel
        public static DocumentModel Map(ReflectionModel reflectionModel, XmlDocumentationModel xmlModel)
        {
            var assemblies = new List<DocumentedAssembly>();

            // Iterate all assemblies.
            foreach (var assembly in reflectionModel.Assemblies)
            {
                assemblies.Add(MapAssembly(assembly, xmlModel));
            }

            // Create the document model.
            var model = new DocumentModel(assemblies);

            // Map extension methods.
            var finder = new ExtensionMethodFinder(model);
            var namespaces = model.Assemblies.SelectMany(a => a.Namespaces).ToArray();
            foreach (var @namespace in namespaces)
            {
                foreach (var type in @namespace.Types)
                {
                    type.SetExtensionMethods(finder.FindExtensionMethods(type));
                }
            }

            // Map base types methods.
            var baseTypeFinder = new BaseTypeFinder(model);
            foreach (var @namespace in namespaces)
            {
                foreach (var type in @namespace.Types)
                {
                    type.BaseType = baseTypeFinder.FindBaseType(type);
                }
            }

            // Build namespace trees and map them.
            var trees = DocumentedNamespaceTree.Build(namespaces);
            foreach (var @namespace in namespaces)
            {
                if (trees.ContainsKey(@namespace.Identity))
                {
                    @namespace.Tree = trees[@namespace.Identity];
                }
            }

            return model;
        }

Usage Example

Пример #1
0
        /// <summary>
        /// Generates a document model.
        /// </summary>
        /// <param name="paths">The items.</param>
        /// <returns>The built document model.</returns>
        public DocumentModel BuildModel(IDictionary <string, IDocumentationMetadata> paths)
        {
            var reflectionModel = BuildReflectionModel(paths);
            var xmlModel        = BuildXmlModel(paths);

            return(DocumentModelMapper.Map(reflectionModel, xmlModel));
        }