Wie kann ich den ASP .NET-Kompilierungsprozess haken?

8

ASP .NET Dynamisch generieren Klassen & amp; kompiliert eine Assembly für die temporären ASP.NET-Dateien.

Ich möchte Informationen erhalten, wenn dieser Prozess stattfindet. Letztendlich würde ich gerne ein Ereignis haben, das den Namen der Quelldatei und den generierten Klassennamen + Assembly auslöst, so dass ich zwischen Methoden in der ursprünglichen Quelldatei und Methoden in den generierten Klassen abbilden kann.

Ich werde Ihre Hilfe zu schätzen wissen.

    
nadavy 14.03.2017, 23:02
quelle

2 Antworten

1

Ich würde empfehlen, die FileSystemWatcher-Klasse zu verwenden, um einen Watcher für die entsprechenden Verzeichnisse zu erstellen, und dann die Verarbeitung basierend darauf durchzuführen.

Hier finden Sie Informationen darüber: Ссылка

Im Wesentlichen würde der Watcher Ihnen ermöglichen, Ereignisse zu Dateiänderungen in dem Verzeichnis abzurufen, von denen Sie dann die Assembly-Klasse verwenden können, um Reflektionsinformationen über den generierten Code zu laden und zu verarbeiten. Ich kann nicht sagen, dass dies einfach sein wird, aber es ist sehr machbar. Sie werden auch eine Datenbank haben wollen, um zu verfolgen, was sich geändert hat, indem Sie Quellcode in kompilierten Code umwandeln, um ihn robuster zu machen.

Hoffentlich zeigt das euch in die richtige Richtung.

    
Inari 24.03.2017 14:03
quelle
1

Ausarbeitung des Vorschlags von @Inari

Achten Sie darauf, dass Sie den Ordner AppDomain.CurrentDomain.DynamicDirectory mit IncludeSubdirectories auf "true" setzen. Um sicher zu sein, dass Sie nicht zu spät sind, um alle Kompilationen zu überwachen, müssen Sie als allererste starten, also würde ich vorschlagen, dass Sie das PreApplicationStartMethodAttribute dafür verwenden.

Dies hilft beim Abrufen der Informationen, wenn dieser Prozess stattfindet. Wenn Sie auch Quelldateien finden wollen, hängt das davon ab, an was Sie interessiert sind (nur kompilierte Assemblies? = & Gt; Reflektion, auch kompilierte Rasiererseiten = & gt; nach Namen).

%Vor%     
AardVark71 24.03.2017 15:36
quelle