private void Form1_Load(object sender, EventArgs e) { // 1) Jede DLL laden, die im PlugIn-Ordner drinnen ist foreach (var file in Directory.GetFiles(".\\PlugIn")) { if (Path.GetExtension(file) == ".dll") { Assembly.LoadFrom(file); } } var allAssemblies = AppDomain.CurrentDomain.GetAssemblies() .Where(x => x.FullName.StartsWith("Widerstand")) .ToArray(); var allTypes = allAssemblies.SelectMany(x => x.GetTypes()) .Where(x => typeof(IMesstechnik).IsAssignableFrom(x) && x.IsInterface == false && x.IsAbstract == false) .ToArray(); // 2) Instanz von der Messtechnik erstellen IMesstechnik software = (IMesstechnik)Activator.CreateInstance(allTypes[0]); // zur laufzeit geladen IRepository repository = new EFRepository(new EFContext()); messgerät = new Messgerät(software, repository); // Testdaten generieren falls keine da sein sollten if (repository.GetAll <SOLLWiderstand>().Count() == 0) { GenerateTestData(repository); } // Daten in der ListBox anzeigen listBoxSOLL.DataSource = repository.GetAll <SOLLWiderstand>(); // Software laden comboBoxSoftware.Items.Clear(); foreach (var item in allTypes) { comboBoxSoftware.Items.Add(item); } comboBoxSoftware.SelectedIndex = 0; }
public Messgerät(IMesstechnik software, IRepository repository) { Software = software; this.repository = repository; }