Die Artikel, die ich in T4 mit TextTemplatingFilePreprocessor gelesen habe, zeigen, wie man dynamisch Code generiert, der Teil eines Projekts wird und mit dem Projekt kompiliert wird.
Ist es möglich, T4 zu verwenden, um Code zu generieren, der zur Laufzeit kompiliert, an eine DLL ausgegeben und geladen und ausgeführt wird, wobei der Code auf die üblichen Sichtbarkeitsfähigkeiten einer DLL zugreifen kann?
Wenn ja, könnten Sie mich bitte auf ein Beispiel hinweisen.
Ich versuche effektiv, dasselbe zu tun, indem ich eine dynamische DLL mit IL erzeuge, aber eher C # benutze.
BEARBEITEN
Der spezielle Fall, für den ich das brauche, ist einfach. Ich schreibe einen Nachrichtenrouter, der Nachrichten an Dienste weiterleitet. Dienste können lokal oder remote sein. Ein deklaratives Skript wird in C # kompiliert. Der dynamische Teil lautet "Ist dieser Dienst lokal oder entfernt?". Der Ausgang C # wird entsprechend geändert. Der Routing-Stil unterscheidet sich für local / remote, daher die dynamische Art.
Dies ist ein Beispiel für das, was ich brauche.
Um dies zu tun, müssen Sie zwei Dinge wissen:
CSharpCodeProvider
verwenden, um eine Assembly aus dem Text at zu kompilieren Laufzeit. Oder Sie könnten csc.exe (den C # -Compiler der Befehlszeile) manuell für den generierten Text ausführen, aber das wäre komplizierter. (Tatsächlich macht CSharpCodeProvider
genau das hinter den Kulissen.) Der Code könnte so aussehen:
%Vor%Tags und Links .net c# t4 code-generation