示例#1
0
        /// <inheritdoc/>
        public void WriteNamespaceDocument(NamespaceInfo nameSpace, IClassDocumentFormatter formatter)
        {
            string filePath = GetNamespaceDocumentFilePath(nameSpace, false);
            string dir      = Path.GetDirectoryName(filePath);

            if (!Directory.Exists(dir))
            {
                Directory.CreateDirectory(dir);
            }

            RazorEngine.Templating.DynamicViewBag viewBag = new RazorEngine.Templating.DynamicViewBag();
            viewBag.AddValue("Formatter", formatter);

            if (!NamespaceDocumentTemplateState.IsCompiled)
            {
                NamespaceDocumentTemplateState.Compile(typeof(NamespaceInfo));
            }

            using (StreamWriter writer = new StreamWriter(filePath, false, Settings.NamespaceDodumentSettings.Encoding))
            {
                Engine.Run(NamespaceDocumentTemplateState.Key, writer, nameSpace.GetType(), nameSpace, viewBag: viewBag);
                writer.Flush();
            }
        }