ERLEDIGT
JA
JA
ANTWORTEN
13
13
ZUGRIFFE
1575
1575
EMPFEHLEN
-
22.08.06 09:37 #1
Hi @all!
Ich möchte gern das Solution-File, alle in dieser Solution enthaltenen Projekte und in diesen Projekten wiederum alle Dateien auslesen und strukturieren. D.h. ich möchte wissen welche Projekte in der Solution sind, welche Dateien und Unterordner in den Projekten sind und natürlich - ganz wichtig - was die einzelnen Dateien (.cs-Files hauptsächlich) enthalten - also private, public, protected... Member, welche Methoden, was die Methoden für Parameter erwarten, was sie für einen Rückgabewert haben etc.
FRAGE:
Kann man das mit Reflection, ohne eine Instanz der jeweiligen Klassen zu erstellen und ohne diese Assamblies zu kompilieren? Also sozusagen, Project-File öffnen und dann auf den Inhalt parsen? Genauso bei den Klassen-Files!? Ich möchte ungern mit String-Parsern rumspielen - ist mir eigentlich zu aufwändig. Aber vielleicht gibt es ja eine Mögliochkeit im DOTNET-FW, die ich nur noch nicht gefunden habe...
Vielen Dank an alle, die mir helfen wollen!
MfG
..::SD::..
-
Wirst du wohl selber ausprogrammieren müssen. Und zwar OHNE Reflection - so wie du das willst.
-
22.08.06 09:56 #3
Hi!
Vielen Dank schonmal für Deine schnelle Antwort!
Du meinst also ich muss mich mit String-Parsen rumschlagen?!
Ich dachte es mir fast, nachdem ich schon 3 Studen lang den Reflection-Namensraum durchsucht habe... Schade eigentlich...
Naja, dann hab ich ja wieder einiges an Entwicklungsarbeit vor mir. Im Endeffekt soll mal ein Programm entstehen, in dem ich das Solutionfile öffne und erliest mir alles aus was drin steht und löst mir sämtliche Referenzen auf und stellt mir das ganze evtl. noch grafisch dar. Mit allen Summery-Tags, Beschreibungen, Membern etc.
Vielen Dank trotzdem!
MfG
..::SD::..
-
Und warum machst du das nicht per Reflection über die Assembly-Files drüber? Dann ersparst du dir diese ganze String-Meierei ...
-
22.08.06 12:16 #5
Weiss ich nicht genau. Irgendwas hält mich davon ab das so zu machen - ich weiss aber noch nicht was es ist.
Ah ja doch.
Ich weiss nicht an welcher Stelle ich anfangen soll. Im Textbereich hab ich ja das Solutionfile, aber fertig kompiliert?! Es sind viele DLL's und einige Webprojekte, die auf dem Webserver laufen (lokal).Geändert von SixDark (22.08.06 um 12:25 Uhr)
-
Wenn du die Assembly nimmst, dann hast du die static void main bei der unfangen kannst. Dies ist der Entry-Point und von da aus kannst du alles schön nachvollziehen.
-
24.08.06 07:51 #7
Ich glaube Du hast recht Norbert! Es ist wohl doch besser ich benutze Reflection und zieh mir alles aus den fertigen DLL's. Hab schon mal ein wenig rumexperimentiert und das scheint die bessere Lösung zu sein.
Vielen Dank nochmal für Deine Anregung! Ist doch immer wieder besser, mal die Meinung von anderen zu überdenken.
Viele Grüsse
..::SD::..
-
Auf alle Fälle.
Bei Fragen kannst dich ja gerne wieder melden
-
29.08.06 10:27 #9
Hallo Norbert!
Ich hab jetzt schon einiges für meinen SolutionExplorer fertig gestellt. Hab allerdings ein Problem:
Wenn ich manche DLL's öffnen will, kommt folgender Fehler:
Code :1
System.Reflection.ReflectionTypeLoadException: Unable to open one or more of the requested types. Retrieve the LoaderExceptions property for more information. ...
Kannst Du mir sagen was das bedeutet? Wo finde ich die LoaderExceptions property? Ich hab schon im Netz gesucht, aber nichts passendes gefunden. Woran kann dieser Fehler liegen?
Viele Grüsse
..::SD::..
-
ReflectionTypeLoadException.LoaderExceptions Property
Zitat von SixDark
Steht in meinem Objektbrowser im VS2003 EA.
Zitat von MSDN
MfG,
Christian
Wer sein Problem definiert, hat es schon halb gelöst!
Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.
The Code Project! - C# Programming | C# / VB.NET Pendants
Regeln + Netiquette
Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
und vor allem nicht auf das, was euch die IHK dazu erzählt!
Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...
-
30.08.06 14:19 #11
Manchmal bin ich echt etwas dämlich!
Vielen Dank für die Antwort. Die Fehler haben sich mittlerweile beheben lassen.
Trotzdem hab ich noch zwei Sachen, bei denen ich schon seit Stunden nicht weiterkomme:
Ich kriege es nicht hin in meiner Liste die Methoden auszuklammern, die automatisch durch die Properties erstellt werden. Also solche Methoden wie "get_Irgendwas()" oder "set_Irgendwas(value)"...
Ich bekomme nicht raus, von welcher anderen Klasse bzw. von welchem anderen Interface eine Klasse abgeleitet ist, wenn das Interface nicht System-Standard ist. Hat da jemand mal ein Denkanstoss für mich?
Ich hoffe ihr könnt mir helfen...
Viele Grüsse...
..::SD::..
-
07.09.06 13:50 #12
Hallo nochmal!
Ich habe grad ein Problem mit den Referenzen. Wie zum Teufel bekomme ich alle Referenzen zu anderen (externen) Klassen. Ich möchte gern die Klasse inkl. Namespace und den Methodennamen, der Methode, die aufgerufen wird. Ich weiss aber echt nicht wie ich an diese Informationen komme...
Kann mir jemand helfen?
Viele Grüsse!
..::SD::..
-
-
11.10.06 09:03 #14
Hallo,
das Problem war, dass einige Referenzen gefehlt haben. Wenn Du eine Assembly öffnen möchtest, die ihrerseits wieder Referenzen auf andere Projekte hat, dann musst Du diese Referenzen zu Deinem Projekt hinzufügen. Sonst funktioniert es nicht.
Versuch mal in etwa folgendes als Fehlerausgabe einzupflanzen (LoaderException):
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Assembly ass; Type[] typeArray = new Type[0]; try { ass = Assembly.LoadFile(fileName_of_your_Assembly); typeArray = ass.GetTypes(); } catch (ReflectionTypeLoadException exc) { string Fehlertext = ""; Exception[] exceptions = exc.LoaderExceptions; foreach (Exception fehler in exceptions) { Fehlertext += fehler.Message + "\r\n"; } MessageBox.Show(Fehlertext"; }
Ich hoffe das hilft Dir weiter...
Viele Grüsse
..::SD::..
Ähnliche Themen
-
KML Files auslesen
Von oldputz1990 im Forum PHPAntworten: 0Letzter Beitrag: 14.11.08, 10:17 -
Code zum Auslesen von MP3-Files
Von Html im Forum PHPAntworten: 5Letzter Beitrag: 11.08.07, 11:42 -
Private Attribute über Reflection auslesen
Von Thomas Darimont im Forum .NET Application und Service DesignAntworten: 8Letzter Beitrag: 19.07.06, 14:55 -
Kann man nicht public Methoden via reflection auslesen
Von Luxor im Forum JavaAntworten: 1Letzter Beitrag: 17.12.03, 15:54 -
files auslesen und integrieren ..
Von h-brock im Forum PHPAntworten: 5Letzter Beitrag: 22.03.02, 13:26





Zitieren
Login





