public static RootTree LoadTree(string basedir, bool includeExternal = true) { if (string.IsNullOrEmpty(basedir)) { throw new ArgumentNullException("basedir"); } if (!Directory.Exists(basedir)) { throw new ArgumentException("basedir", string.Format("Base documentation directory at '{0}' doesn't exist", basedir)); } XmlDocument xmlDocument = new XmlDocument(); string filename = Path.Combine(basedir, "monodoc.xml"); xmlDocument.Load(filename); IEnumerable <string> sourceFiles = Directory.EnumerateFiles(Path.Combine(basedir, "sources"), "*.source"); if (includeExternal) { sourceFiles = sourceFiles.Concat(RootTree.ProbeExternalDirectorySources()); } return(RootTree.LoadTree(basedir, xmlDocument, sourceFiles)); }