Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo. Ich hab eine kleines Problem, bei dem ich gerade nicht weiterkommen.

Situation:

Ich hab einen Ordner, in dem leg in DLL's ab, welche alle über eine bestimmte Funktione "ShowApp" verfügen.

Nun möchte ich über alle DLL's in diesem Ordner iterieren und für jede DLL die Funktion "ShowApp" aufrufen.

Ich weiß, dass ich über System.Reflection.Assembly.LoadFile(...) an die DLL's rankomm.

Über folgengen Code komm ich auch an die Funktion ran:


Assembly assembly = Assembly.LoadFile(file);

MethodInfo methodShow = assembly.GetTypes()[assembly.GetTypes().Length - 1].GetMethod("ShowApp");

Nur weiß ich jetzt nicht, wie ich die Funktion ausführ :(

Die Funktion methodShow.Invoke(...) will als Parameter 2 Objects, wobei man beim zweiten null angeben kann. Beim ersten will er ein Objekt, wo er es hinspeichern kann. Ich weiß grad aber nicht wie ich das anstellen soll. Was geb ich ihm da mit? Assembly?

Oder muss ich in dem Programm, dass die anderen DLL's aufrufen soll, ein Interface oder eine Klasse hinzufügen, welche ebenfalls über die Funktion "ShowApp" verfügt.

Hab es jetzt ewig versucht und weiß einfach nimmer weiter.

[EDIT]

Ich bekomm bei allen Versuchen immer folgende Fehlermeldung:

"Object does not match target type."

Bearbeitet von Rekon1602

  • Autor

Stimmt. Aber dieses Objekt kenn ich nicht zur compilierzeit.

Aber ich hab mein Problem mittlerweile gelöst.

Falls es jemanden interessiert.


Assembly assembly = Assembly.LoadFile(file);

dynamic dyn = assembly.CreateInstance(assembly.GetTypes()[assembly.GetTypes().Length - 1].ToString());

Jetzt kann ich dyn so verwenden wie die Klasse, die es zur Laufzeit annimmt. Nur das Intellisense vom VisualStudio funktioniert nicht. Is aber auch klar warum :)

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.