public void TopicParserParseAssemblyTest() { var assemblyFile = @"C:\projects2010\Westwind.Utilities\Westwind.Utilities\bin\Release\net46\Westwind.Utilities.dll"; var proj = DocProjectManager.Current.LoadProject(TestConfiguration.Current.Paths .projectMarkdownMonsterHelpFile); var topic = new DocTopic(proj) { Title = "Class Reference", DisplayType = "header", }; topic.CreateRelativeSlugAndLink(topic); topic.Body = "Class Reference for " + assemblyFile; proj.Topics.Add(topic); topic.SaveTopicFile(); var parser = new DocHound.Importer.TypeTopicParser(proj, topic) { NoInheritedMembers = true, ClassesToImport = null }; parser.ParseAssembly(assemblyFile, topic, true); proj.SaveProject(); }
private async void Button_ImportClick(object sender, RoutedEventArgs e) { if (Model.ParentTopic == null) { StatusBar.ShowStatusError("Please select a Parent Topic first."); return; } // make sure we have the same reference var parentTopic = Model.AddinModel.ActiveProject.FindTopicInTreeByValue(Model.ParentTopic, Model.AddinModel.ActiveProject.Topics); StatusBar.ShowStatusProgress("Generating class documentation...", 200_000_000); var importRootTopic = parentTopic.Copy(); importRootTopic.Topics = new System.Collections.ObjectModel.ObservableCollection <DocTopic>(); //BindingOperations.EnableCollectionSynchronization(Model.ParentTopic.Topics, TopicsCollectionLock); try { await Task.Run(() => { var parser = new DocHound.Importer.TypeTopicParser(Model.AddinModel.ActiveProject, importRootTopic) { NoInheritedMembers = Model.NoInheritedMembers, ClassesToImport = Model.ClassList }; parser.ParseAssembly(Model.AssemblyPath, importRootTopic); }); } catch (Exception ex) { MessageBox.Show(ex.Message); } foreach (var topic in importRootTopic.Topics) { parentTopic.Topics.Add(topic); } StatusBar.ShowStatusProgress("Saving project..."); Model.AddinModel.ActiveProject.SaveProject(); // Force the Model.AddinModel.TopicsTree.Model.OnPropertyChanged(nameof(TopicsTreeModel.TopicTree)); StatusBar.ShowStatusSuccess("Class import completed.", 5000); //var parser = new TypeParser() { ParseXmlDocumentation = true, // NoInheritedMembers = Model.NoInheritedMembers, // ClassesToImport = Model.ClassList //}; //var types = parser.GetAllTypes(Model.AssemblyPath); //RenderTypes(types); }