Even een kort stukje achtergrond:
Ik heb een applicatie waarin op afroep een source-file wordt gecompileerd, geladen in een aparte AppDomain en waar vervolgens methods op kunnen worden uitgevoerd. Als deze niet meer nodig is, of als er ondertussen een nieuwe versie van de source-file beschikbaar is, wordt de betreffende AppDomain unloaded, source opnieuw gecompileerd en weer geleaden.. enz.
Dit werkt allemaal prima zolang mijn classes geen overerving gebruiken. Dus:
kan prima runtime gecompileerd worden. Echter:
gaat natuurlijk hopeloos mis, omdat de compiler niet weer waar hij Vehicle-type vandaan moet halen.
Is er een mogelijkheid om in te haken in de Compiler om zo alle imports langs te lopen en waar nodig de ontbrekende maar noodzakelijke types te compileren en toe te voegen aan de lijst van assemblies voor de Compiler.
Kort gezegd:
Wanneer de Compiler type 'Vehicle' tegenkomt, dat mijn programma er dan voor kan zorgen dat eerst ook nog deze source gecompileerd wordt alvorens de Compiler verdergaat met het compileren van 'Car'.
Het lijkt er namelijk op dat ik alleen Assemblies kan meegeven in de CompilerOptions object.
Iemand een helder idee?
Ik heb een applicatie waarin op afroep een source-file wordt gecompileerd, geladen in een aparte AppDomain en waar vervolgens methods op kunnen worden uitgevoerd. Als deze niet meer nodig is, of als er ondertussen een nieuwe versie van de source-file beschikbaar is, wordt de betreffende AppDomain unloaded, source opnieuw gecompileerd en weer geleaden.. enz.
Dit werkt allemaal prima zolang mijn classes geen overerving gebruiken. Dus:
C#:
1
2
| public class Car { } |
kan prima runtime gecompileerd worden. Echter:
C#:
1
2
| public class Car : Vehicle { } |
gaat natuurlijk hopeloos mis, omdat de compiler niet weer waar hij Vehicle-type vandaan moet halen.
Is er een mogelijkheid om in te haken in de Compiler om zo alle imports langs te lopen en waar nodig de ontbrekende maar noodzakelijke types te compileren en toe te voegen aan de lijst van assemblies voor de Compiler.
Kort gezegd:
Wanneer de Compiler type 'Vehicle' tegenkomt, dat mijn programma er dan voor kan zorgen dat eerst ook nog deze source gecompileerd wordt alvorens de Compiler verdergaat met het compileren van 'Car'.
Het lijkt er namelijk op dat ik alleen Assemblies kan meegeven in de CompilerOptions object.
Iemand een helder idee?
Signature van nature