private static IProjectDependenciesModelExporter GetExporter(string exporterFormatName) { if (!_availableExporters.ContainsKey(exporterFormatName)) { throw new ArgumentException(string.Format("Exporter with format '{0}' is not available.", exporterFormatName)); } IProjectDependenciesModelExporter exporter = _availableExporters[exporterFormatName]; return(exporter); }
private void ExportGraphToFile() { string exporterFormatName = (string)cb_exportFormat.SelectedItem; IProjectDependenciesModelExporter exporter = GetExporter(exporterFormatName); string exporterFileExtension = exporter.ExportedFileExtension; saveFileDialog_export.FileName = _projectDependenciesModel.RootProjectInfo.ProjectName; saveFileDialog_export.Filter = string.Format("{0} (*.{1})|*.dgml", exporterFormatName, exporterFileExtension); if (saveFileDialog_export.ShowDialog() == DialogResult.OK) { exporter.Export(_projectDependenciesModel, saveFileDialog_export.FileName); MessageBox.Show("Done.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
private static void ObtainAvailableExporters() { IEnumerable <Type> exportersTypes = Assembly.GetExecutingAssembly().GetTypes() .Where(t => typeof(IProjectDependenciesModelExporter).IsAssignableFrom(t)); foreach (Type exportersType in exportersTypes) { if (exportersType.IsInterface) { continue; } IProjectDependenciesModelExporter exporter = (IProjectDependenciesModelExporter)Activator.CreateInstance(exportersType); _availableExporters.Add(exporter.ExportFormatName, exporter); } }