Hintergrund: Ich möchte einen benutzerdefinierten VB-Compiler erstellen, den "ursprünglichen" Compiler erweitern, um meine benutzerdefinierten Kompilierzeitattribute zu verarbeiten.Integrieren eines benutzerdefinierten Compilers mit der Visual Studio-IDE
Frage: Nachdem ich meinen benutzerdefinierten Compiler erstellt habe und ich eine ausführbare Datei habe, die VB-Code über die Standardbefehlszeilenschnittstelle kompilieren kann, wie integriere ich diesen Compiler mit der Visual Studio IDE? (so dass das Drücken von "compile" oder "build" meinen Compiler anstelle des Standardcompilers verwendet).
EDIT: (korrigiert mich wenn ich falsch liege)
Aus den Reaktionen hier, ich sehe diese Frage ein bisschen schockierend ist, so werde ich weiter meine Bedürfnisse und Hintergrund erklären: .NET bietet uns mit einem tollen Mechanismus namens Attribute. Soweit ich verstehe, wendet das Erstellen von Attributen das beabsichtigte Verhalten auf das attributierte Element an (Assembly, Modul, Klasse, Methode usw.) - Attribute müssen reflektiert werden. Der wahre Trick besteht also darin, das Verhalten an der richtigen Stelle zu reflektieren und anzuwenden.
Nehmen wir Serialisierung zum Beispiel: Wir dekorieren eine Klasse mit dem Serializable-Attribut. Wir übergeben dann eine Instanz der Klasse an die Serialize-Methode des Formatierers. Der Formatierer spiegelt die Instanz wider, überprüft, ob das Attribut Serializable vorhanden ist und verhält sich dementsprechend.
Wenn wir nun die Synchronization, Flags, Obsolete und CLSCompliant-Attribute untersuchen, dann ist die wirkliche Frage: Wer denkt über sie nach? Zumindest in einigen Fällen muss es der Compiler (und/oder IDE) sein. Daher möchte ich, wenn ich benutzerdefinierte Attribute erstellen möchte, die das Verhalten eines Elements unabhängig von einem bestimmten Verbraucher ändern, den Compiler erweitern, um sie bei der Kompilierung zu berücksichtigen.
Natürlich sind dies nicht meine persönlichen Erkenntnisse: Das Buch "Applied .NET Attributes" bietet ein vollständiges Beispiel für die Erstellung eines benutzerdefinierten Attributs und eines benutzerdefinierten C# -Compilers, um dieses Attribut bei der Kompilierung zu reflektieren (das Beispiel wird verwendet, um "Java" zu implementieren). Stil überprüft Ausnahmen ").
Wirklich? Willst du das wirklich? –
Warum nicht? Es ist nicht so, dass "M.A. Hanin" versucht, etwas außerhalb seines Feldes zu tun. – AMissico
@ M.A. Hanin: Ich werde es nicht erklären. Wenn sie geschockt sind, sollten sie die Frage nicht beantworten. Richtig? – AMissico