2009-03-27 1 views
1

Ich muss von einer .NET-Assembly eine class/struct/interface-Definitionsposition (Dateiname, begin_line, begin_column, end_line, end_column) in meinen Quelldateien abrufen können.Wie können Quellcode-Standortinformationen (Datei/Zeile/Spalte) in .NET Assembly eingefügt werden?

Die erste Lösung, die mir in den Sinn kam, war einige pdb quering api, aber es scheint, dass ich solche Informationen nur für die Methodendefinition auf diese Weise erhalten kann. Oder vielleicht liege ich falsch ...

Um den Kontext bereitzustellen, versuche ich ein Add-In zu VS 2008 zu erstellen, die alle Lösungsprojekte durch VS-Automatisierungsmodell kompiliert, Assemblys nimmt und mit Reflections einige visuelle Modellierung erstellt Darstellung. Was ich brauche, ist eine Verbindung zwischen Quellcode und Modellelementen. Tatsächlich könnte ich sogar Quellen in irgendeiner Weise analysieren/modifizieren, um sie an die Ortsinformationen erinnern zu lassen.

Irgendwelche Ideen würden geschätzt.

Antwort

0

Ich nehme an, dass das vorhandene Klassendiagramm Ihnen nicht hilft, und dass Sie ein Werkzeug nicht verwenden können, das bereits weiß, wie man C# zurückentwickelt? Sparx Enterprise Architect kommt mir in den Sinn, weil es nicht nur das Reverse Engineering durchführen kann - es kann auch benutzerdefinierte Transformationen der resultierenden Modelle ausführen. Sie sollten in der Lage sein, alles, was Sie wollen, sowohl in Bezug auf das Modell als auch in Bezug auf Artefakte zu generieren.

Sie sollten auch berücksichtigen, dass eine Klasse teilweise sein kann - die gleiche Klasse kann in mehreren Teilen existieren.

+0

Yeap. Sparx EA ist großartig, aber ich brauche mein eigenes Fallwerkzeug. Und was ich von diesem Punkt aus nicht bieten kann, ist die Verbindung zwischen meinen Modellelementen und dem Quellcode. Ich verstehe, dass eine Klasse vielleicht teilweise und eine Methode und andere harte Sachen, aber ich muss es irgendwie tun. Vielen Dank für Ihre Antwort. –

+0

Ich schlug vor, dass Sie Ihr Werkzeug aus ihren ... –

0

Ihre Situation klingt fast so, als müssten Sie den Quellcode irgendwie parsen. Vielleicht lohnt es sich, DXCore von DevExpress zu überprüfen, dies kann zumindest eine Grundlage für beide Grafiken in Visual Studio und einen Parser bieten, der Ihnen ein Code-DOM für alle unterstützten Sprachen liefert. Es ist auch kostenlos, wenn Sie Ihre eigenen Add-Ins erstellen.

http://www.devexpress.com/Downloads/Visual_Studio_Add-in/DXCore/

Es ist vielleicht nicht die Lösung sein, die Sie suchen, aber es ist zumindest einen Blick wert, wenn es Sie nutzen, was er anbietet. Es gibt viele ziemlich leistungsfähige Plug-Ins, die auf dieser Grundlage basieren. zB: http://jayflowers.com/WordPress/?p=137,

+0

Thanx erstellen. Ich werde es mir ansehen. –

Verwandte Themen