コード例 #1
0
ファイル: Program.cs プロジェクト: askalione/xdocumentor
        static void Main(string[] args)
        {
            try
            {
                GenerationOptions options = new GenerationOptions(args);

                var types = MarkdownGenerator.BuildFrom(options.Target, options.NamespaceMatch, options.AccessibilityLevel);

                if (types.Length == 0)
                {
                    return;
                }

                if (!Directory.Exists(options.Output))
                {
                    Directory.CreateDirectory(options.Output);
                }
                else
                {
                    DirectoryInfo directory = new DirectoryInfo(options.Output);
                    foreach (FileInfo file in directory.GetFiles())
                    {
                        file.Delete();
                    }
                    foreach (DirectoryInfo subDirectory in directory.GetDirectories())
                    {
                        subDirectory.Delete(true);
                    }
                }

                var homeBuilder = new MarkdownBuilder();
                homeBuilder.Header(1, "Contents");
                homeBuilder.AppendLine();

                switch (options.Mode)
                {
                case GenerationMode.FilePerClass:
                    GenerateFilePerClass(homeBuilder, options.Output, types);
                    break;

                case GenerationMode.FilePerNamespace:
                    GenerateFilePerNamespace(homeBuilder, options.Output, types);
                    break;

                default:
                    throw new Exception("Unknown generation mode");
                }

                File.WriteAllText(Path.Combine(options.Output, "Contents.md"), homeBuilder.ToString());
            }
            catch (Exception ex)
            {
                Console.WriteLine("An exception is thrown: " + GetFullExceptionMessage(ex));
                Console.ReadKey();
            }
        }