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;
        }
Example #2
0
 public Messgerät(IMesstechnik software, IRepository repository)
 {
     Software        = software;
     this.repository = repository;
 }