Entwickler-Ecke
IO, XML und Registry - Funktionen einer DLL anzeigen
Ivy - Mi 21.07.10 09:43
Titel: Funktionen einer DLL anzeigen
Hallo zusammen,ich möchte die Funktionen meiner dll anzeigen. hab jetzt auch schon hab google abgesucht, aber nicht passendes und funktionierendes gefunden.
weiß jemand wie das funktioniert?
Christian S. - Mi 21.07.10 09:55
Hallo!
Die Assembly-Klasse bietet Dir z.B. die Funktion GetTypes und von den Typen kannst Du wiederrum über die Funktionen der Type-Klasse die Methoden bestimmen.
Grüße
Christian
Ivy - Mi 21.07.10 09:56
ahja, gehts auch noch i-wie genauer? versteh ich nicht so ganz was ich jetz machen muss^^
Christian S. - Mi 21.07.10 09:57
Du könntest länger als eine Minute selber drüber nachdenken ... :roll:
Christian S. - Mi 21.07.10 10:12
Zeig mal, wie Du das probiert hast, dann kann man da besser weiterhelfen.
Ivy - Mi 21.07.10 10:13
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| Assembly SampleAssembly; SampleAssembly = Assembly.LoadFrom("d:\\Interop.ExtensionCord.dll"); MethodInfo Method = SampleAssembly.GetTypes()[0].GetMethod("Method1"); ParameterInfo[] Params = Method.GetParameters(); foreach (ParameterInfo Param in Params) { Console.WriteLine("Param=" + Param.Name.ToString()); Console.WriteLine(" Type=" + Param.ParameterType.ToString()); Console.WriteLine(" Position=" + Param.Position.ToString()); Console.WriteLine(" Optional=" + Param.IsOptional.ToString()); Console.ReadKey(); |
Params ist aber immer null, und deshalb stürzt das Programm immer ab...
Christian S. - Mi 21.07.10 10:15
Okay, das sieht auf den ersten Blick eigentlich okay aus. Wie sollte denn Signatur von "Method1" eigentlich sein?
Ivy - Mi 21.07.10 10:17
Christian S. hat folgendes geschrieben : |
Okay, das sieht auf den ersten Blick eigentlich okay aus. Wie sollte denn Signatur von "Method1" eigentlich sein? |
hm? verstehe deine Frage nicht so ganz?!
Christian S. - Mi 21.07.10 10:18
Naja, welche Parameter / Rückgabewert sollte "Method1" haben. Instanzmethode oder statische Methode? usw.
Ivy - Mi 21.07.10 10:22
ähm keine ahnung^^ ich weiß nicht was in der dll drin ist. kp
will ja nur die funktionen auslesen^^
Christian S. - Mi 21.07.10 10:25
Ach so, weil Du oben schriebst, Du wolltest die Funktionen "Deiner" DLL auslesen.
Dann würde ich empfehlen, eine Schleife über alle Typen zu machen, darin eine Schleife über alle Methoden und dann ne Schleife über alle Parameter. Dann siehste, was drin ist.
Als Kontrolle kannste dann den
.NET REFLECTOR benutzen ;-)
Ivy - Mi 21.07.10 10:47
aha hört sich ziemlich kompliziert an. gibts da nicht ne einfacherer methode? Weil ich kenn die parameter der dll ja nicht.
Critter - Mi 21.07.10 14:43
Ivy hat folgendes geschrieben : |
aha hört sich ziemlich kompliziert an. gibts da nicht ne einfacherer methode? Weil ich kenn die parameter der dll ja nicht. |
Noch einfacher?
Sorry, aber ein bisschen Mühe wirst du dir auch geben müssen.
Christian S. hat drei einfache Schritte benannt. Versuche doch einfach einmal die einen nach dem anderen zu verstehen und umzusetzen.
Versuche erst einmal, die erste Schleife über alle Typen hin zu bekommen, dann kann man weiter sehen.
critter
danielf - Mi 21.07.10 15:43
Hallo,
ich hab mal ne ganz andere Frage. Was willst du den mit dem Ergebnis machen? Also wenn du alle Methoden-Namen und die entsprechende Parameter hast?
Gruß
Kha - Mi 21.07.10 18:35
Ivy hat folgendes geschrieben : |
aha hört sich ziemlich kompliziert an. gibts da nicht ne einfacherer methode? Weil ich kenn die parameter der dll ja nicht. |
Der Reflector ist unentbehrlich, aber wenn du die DLL sowieso schon referenziert hast (warum hast du dir nicht einfach die IntelliSense-Ergebnisse angeschaut :gruebel: ?), tut es auch der
Object Browser.
PS: Ich hoffe doch, es geht hier wirklich um eine
.NET-DLL.
Ivy - Do 22.07.10 14:47
danielf hat folgendes geschrieben : |
Hallo,
ich hab mal ne ganz andere Frage. Was willst du den mit dem Ergebnis machen? Also wenn du alle Methoden-Namen und die entsprechende Parameter hast?
Gruß |
ich muss es für jemandem im auftrag mache, was der jenige mit den funktionen will kp^^
aber er hat eben keine doku zu der dll un weiß deshalb nicht was sie für funktionen beinhaltet...
danielf - Do 22.07.10 14:53
Okay. Also wenn du es nicht Programmtechnisch benötigst und es wie Kha schon gefordert hat eine DLL-Assembly ist, kannst du es am einfachsten mit dem Object-Browser machen. Dazu bindest du die DLL ein und machst danach einen Doppelklick drauf.
Gruß
Ivy - Fr 23.07.10 07:36
danielf hat folgendes geschrieben : |
Okay. Also wenn du es nicht Programmtechnisch benötigst und es wie Kha schon gefordert hat eine DLL-Assembly ist, kannst du es am einfachsten mit dem Object-Browser machen. Dazu bindest du die DLL ein und machst danach einen Doppelklick drauf.
Gruß |
ja so hab ichs jetzt auch gemacht.. trotzdem danke ;)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!