J'ai réussi à créer une classe en utilisant CodeDom et à ajouter une seule méthode à cette classe. Maintenant, est-il possible, après avoir construit l'instance CodeCompileUnit, de compiler le code et d'appeler la méthode générée? L'invocation de la méthode doit être effectuée dans le même contexte que la génération de code.Compilez et appelez une méthode générée
1
A
Répondre
5
Pris d'un friend of mine's blog:
CSharpCodeProvider codeProvider = new CSharpCodeProvider();
codeProvider.GenerateCodeFromNamespace(codeNamespace, new StringWriter(), new CodeGeneratorOptions());
CompilerParameters param = new CompilerParameters(assemblyReferences);
param.GenerateExecutable = false;
param.GenerateInMemory = true;
param.TreatWarningsAsErrors = false;
param.WarningLevel = 4;
CompilerResults results = codeProvider.CompileAssemblyFromDom(param, compileUnit);
Assembly assembly = results.CompiledAssembly;
Type[] types = assembly.GetExportedTypes();
Vous pouvez ensuite utiliser la réflexion sur les types de créer une instance du type que vous voulez et exécuter quelle que soit la méthode que vous voulez.
Questions connexes
- 1. C#, créez une expression (méthode?) Et appelez-la
- 2. Reflection.Emit Generic Base Class Méthode générique Appelez
- 3. Méthode de classe et variable avec le même nom, compilez l'erreur en C++ pas en Java?
- 4. Compilez Xaml en Baml?
- 5. Performance: compilez VS, Exécuter en Mono sous Windows et Linux
- 6. Compilez par programme une tâche de script dans SSIS
- 7. Compilez une application WinCE en tant qu'application PC dans VS2005
- 8. Comment ajouter des attributs personnalisés à une méthode générée par DynamicMethod?
- 9. JAXB - XJC - Influencer générée classe typesafe enum et les membres
- 10. Une exception non gérée a été générée
- 11. inclure une image dans l'image GD générée
- 12. Comment appelez-vous une méthode d'un objet qui change de classe?
- 13. compilez PHP GD-sur Mac OSX 10.5
- 14. Appelez une méthode à partir d'un fichier inclus PAS à partir du fichier inclu. Php
- 15. WPF listview supprimer une colonne supplémentaire générée
- 16. compilez PHP 5.1.6 avec PDO MySQL
- 17. VS2005 - Appelez une méthode à partir d'un projet distinct? (Même solution)
- 18. Comment obtenir une valeur générée automatiquement?
- 19. Compilez un script PHP sous Linux
- 20. compilez des fichiers non-source dans Xcode
- 21. Appelez par programme @Controller
- 22. Appelez javascript pendant modalpopup.show()
- 23. Appelez une classe dans une autre classe en PHP
- 24. Appelez une fonction Javascript dans une instruction en ligne
- 25. Javascript Cookie onload Appelez
- 26. Appelez UserForm sur Enregistrer
- 27. mysql valeur générée au hasard
- 28. Table de chevauchement générée dynamiquement
- 29. Incorporation d'une table générée par XSLT dans une page Web
- 30. Appelez API C de Groovy