/// <summary> /// Open file button logic. /// </summary> private void buttonOpenFile_Click(object sender, RoutedEventArgs e) { try { OpenFileDialog dialog = new OpenFileDialog(); String[] availableFiles = Directory.GetFiles("./", "*.dll"); List <String> featureModelModules = new List <String>(); List <Type> extensions = new List <Type>(); //Searches amongst available libraries for valid Feature Model extensions foreach (String s in availableFiles) { Assembly asm = Assembly.LoadFrom(s); Type[] types = asm.GetTypes(); foreach (Type t in types) { Type[] interfaces = t.GetInterfaces(); if (interfaces.Contains(typeof(IConfigurationFormat))) { IConfigurationFormat extension = (IConfigurationFormat)Activator.CreateInstance(t); string filter = extension.GetFilter(); if (!dialog.Filter.Equals("")) { filter = "|" + filter; } dialog.Filter += filter; extensions.Add(t); } } } if (dialog.ShowDialog() == false) { return; } string fileToLoad = dialog.FileName; string ext = fileToLoad.Split('.').Last(); //Searches amongst valid extensions for the one selected foreach (Type t in extensions) { IConfigurationFormat extension = (IConfigurationFormat)Activator.CreateInstance(t); if (extension.GetFilter().Contains(ext)) { ComponentDiagramBragi bragi = extension.LoadFrom(fileToLoad); this.BragiStruct = bragi; this.UpdateVisualTree(); return; } } } catch (Exception ex) { MessageBox.Show(ex.Message, "PlugSPL Error", MessageBoxButton.OK, MessageBoxImage.Error); } }
public LineByLineConfigurer(IConfigurationDictionary configurationDictionary, IConfigurationFormat format) { _configurationDictionary = configurationDictionary; _format = format; }