Zum Inhalt springen

C# MethodInfo-Problem


Rekon1602

Empfohlene Beiträge

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
Link zu diesem Kommentar
Auf anderen Seiten teilen

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 :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...