public static IDGGraphExporter[] GetExporters() { List <IDGGraphExporter> exporters = new List <IDGGraphExporter>(); string path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); string[] files = Directory.GetFiles(path, "*.dll"); if (files != null) { foreach (string dll in files) { Assembly a = Assembly.LoadFile(dll); foreach (Type t in a.GetTypes()) { if (t.GetInterface("IDGGraphExporter") != null) { try { IDGGraphExporter ge = Activator.CreateInstance(t) as IDGGraphExporter; exporters.Add(ge); } catch { // nothing to do here :( } } } } } return(exporters.ToArray()); }
private void buttonOK_Click(object sender, EventArgs e) { IDGGraphExporter exporter = null; foreach (IDGGraphExporter ex in exporters) { if (ex.GetName() == listBoxExporters.SelectedItem.ToString()) { exporter = ex; break; } } if (exporter == null) { MessageBox.Show("Error getting exporter", "Error"); return; } SaveFileDialog sfd = new SaveFileDialog(); sfd.DefaultExt = exporter.GetExtension(); DialogResult result = sfd.ShowDialog(); if (result == DialogResult.OK) { if (exporter.ExportGraph(fileInfos, sfd.FileName) != 0) { MessageBox.Show("Could not export the file", "Error"); } else { MessageBox.Show("File successfully exported"); } } this.Close(); }