Aufruf der Methode zur Laufzeit
Frage ich mich, ob es möglich ist, zu laden .net-DLL zur Laufzeit die Methoden anzuzeigen, die verfügbar und ausführen zur Laufzeit.
Ist dies möglich, könnten Sie zeigen mich in die richtige Richtung
Du musst angemeldet sein, um einen Kommentar abzugeben.
Im Allgemeinen verwenden Sie System.Reflection-Klassen, um diese Aufgabe zu erfüllen.
Speziell ist, würde man die DLL laden über Montage.Laden (oder Montage.LoadFrom) und rufen Sie dann Montage.GetTypes und dann für jeden Typ call Typ.GetMethods. Wenn Sie eine MethodInfo, können Sie rufen Sie MethodInfo.Aufrufen drauf.
Müssen Sie Reflexion.
Können Sie anrufen
Assembly.LoadFile
zu laden .DLL mit ein .Net-assembly, dann rufen Sie dieGetTypes
Methode auf die zurückgegebenenAssembly
Objekt zu betrachten, das Klassen in der DLL.Sobald Sie haben gefunden ein
Type
- Objekt für die Klasse, die Sie interessiert sind, rufen Sie IhreInvokeMember
Methode zum aufrufen einer Funktion.Vorsicht, dass die Reflexion kann sehr langsam sein.
Delegate.CreateDelegate(...)
anstatt die Methode und nannte es rein durch Reflexion: msdn.microsoft.com/en-us/library/...Ja, das ist möglich, starten Sie einfach mit dem laden der dll:
Und dann zum aufrufen einer Methode in der dll müssen Sie Reflexion.
wo
type.FullName
wird die FullName-Eigenschaft mancher Typ in der assembly.Sobald du die Instanz, die Sie aufrufen können, Ihre Methode so:
Fand ich diese bei
Reflexion eamples