Considérer que j'ai un programme en cours d'exécution, qui devrait faire ce qui suit- Devrait lire du code à partir d'un fichier texte et devrait l'exécuter dans son propre espace d'assemblage afin que le nouveau code en cours d'exécution puisse accéder tous les composants du code sont déjà en cours d'exécution. Comment est-ce possible? Aidez-moi, s'il vous plaît.Générer dynamiquement des modules dans le même espace d'assemblage
Répondre
Je ne sais pas comment fonctionne la magie, mais je regarderais MyGeneration, qui est open source et réalise ce que vous voulez faire. Il peut lire un fichier de C#, VB.Net et JScript, puis compiler/compiler ces scripts et leur donner accès à son propre ensemble de classes et d'assemblages.
Par espace d'assemblage, voulez-vous dire AppDomain? Vous voudrez peut-être regarder IronPython. En tant que langage de script, il est mieux adapté pour être ajouté dynamiquement au programme lors de l'exécution.
Sinon:
Vous avez accès au compilateur C# (et VB.NET) via le Microsoft.CSharp.CSharpCodeProvider assis dans System.dll.
Vous pouvez l'utiliser pour compiler ce fichier texte dans une DLL séparée (éventuellement en mémoire). Assurez-vous d'ajouter votre assembly en cours d'exécution comme référence lors de la compilation. Ensuite, vous pouvez
- charger l'assembly dans l'AppDomain en cours d'exécution. De cette façon, il a accès à tous les objets de votre application. Vous, cependant, ne peut pas décharger le code à nouveau. Vous devrez décharger l'AppDomain entier (c'est-à-dire votre application)
- charger l'assembly dans un AppDomain distinct. Vous devrez explicitement fournir l'accès à certains de vos objets via Remoting (ou d'autres méthodes de communication en cours), mais vous pouvez décharger/remplacer le code au cas où le fichier texte changerait.
De toute façon, vous devrez utiliser la réflexion pour appeler votre code chargé dynamiquement.
- 1. animation CALayers multiples, mais pas dans le même espace temps
- 2. Comment générer dynamiquement des éléments d'écran dans la plateforme OutSystems?
- 3. Comment générer le code lui-même?
- 4. Est-ce que plusieurs popups CSS hover occupent le même espace dans un même div?
- 5. Générer le type de diffusion dynamiquement en C#
- 6. générer dynamiquement des zones de texte à l'aide de JavaScript
- 7. Inclure le fichier de vue dans le même espace de noms dans PHP 5.3.0
- 8. ASP.NET: générer dynamiquement du HTML, comment?
- 9. Comment générer dynamiquement la validation de chaîne?
- 10. Comment charger dynamiquement des modules dans la bibliothèque d'applications Prism/Composite?
- 11. Comment "dynamiquement" générer un ensemble de fichiers?
- 12. comment ajouter un second chemin vers le même espace de noms dans le zend autoloader
- 13. Générer dynamiquement RDLC - Ce qui m'empêche d'utiliser un StringBuilder pour générer le code XML
- 14. Importer des modules avec des sous-modules depuis une bibliothèque
- 15. Espace dans le code postal
- 16. Méthodes pour générer dynamiquement JavaScript dans une page ASPX?
- 17. Est-il possible de générer dynamiquement une classe dans .NET?
- 18. Consommez service WCF avec le même nom et même espace de noms cible de BizTalk
- 19. Compiler php avec des modules vs utiliser des modules partagés?
- 20. Construire des modules magento
- 21. Comment obtenir dynamiquement les modules imbriqués à partir d'un objet?
- 22. Python: Problème avec des modules locaux modules globaux shadowing
- 23. Comment générer dynamiquement des définitions de colonne de table dans la fonction SQL Server 2008
- 24. Comment installer des modules MySQL dans PHP?
- 25. Comment générer dynamiquement une combinaison de contrôles utilisateur ASP.NET?
- 26. J'ai besoin de générer dynamiquement des questionnaires dans aspnet 3.5 en utilisant sqlserver 2005 data
- 27. Réutilisation des modules DNN dans d'autres applications
- 28. Comment référencer des types ou des modules définis dans d'autres fichiers F #?
- 29. espace dans le routage donne 404
- 30. Comment générer un formulaire (<mx:form>) dynamiquement en flexion?
Veuillez clarifier ce que vous entendez par «propre espace de montage», «tous les composants» et «code en cours d'exécution» – abhilash