J'ai besoin d'évaluer 10000+ petit
les scripts qui sont tous différents,
la compilation de tous serait juste
ralentir considérablement
Interpretting ces serait encore plus douloureusement lent. Nous avons un problème similaire, nous adresse est la suivante:
Nous utilisons l'Or Analyseur de projet pour analyser le code source et les convertir en un format XML génériques de la langue". Nous courons à travers une transformation qui génère VB.Net le code source (tout simplement parce qu'il est insensible à la casse). Nous avons ensuite compiler à l'aide de l' .Net runtime dans un autonome DLL, et appeler cela aide fortement restreint l'accès.
On dirait que vous êtes la création de quelque chose comme un site web dynamique où les gens peuvent créer des modules ou des extraits de la fonctionnalité, mais à l'aide de C# pour faire cela introduit un couple des principaux problèmes; C# doit être compilé, et la seule façon de contourner cela est d'interpet lors de l'exécution, et ce n'est pas faisable, et même si vous ne compiler chaque extrait puis vous vous retrouvez avec 10 000 Dll, ce qui est peu pratique et inutilisable.
Si vos extraits sont rarement changement, alors je considère en programmant les enveloppant dans un ensemble unique de source, chacun ayant un nom unique, puis de les compiler en un seul coup (ou comme un temps de traiter toutes les 10 minutes?). C'est ce que nous faisons, car il permet de versioning " des peuples des séances de sorte qu'ils continuent à l'aide de la version de la DLL qu'ils avaient au début de leur session, mais lors de chaque session de cesse d'utiliser une ancienne version, il est supprimé.
Si vos extraits de changer régulièrement tout au long de la journée, alors je vous suggère de regarder un interpretted langage de script au lieu de cela, même en PHP, et le mixage de vos langues selon les fonctionnalités dont vous avez besoin. Des produits tels que CScript et LinqPad utilisent tous le CodeDomProvider, parce que vous devez avoir IMSL quelque part, si vous voulez le programme compilé logique.
La seule autre option est d'écrire votre propre interpretter et utiliser la réflexion pour accéder à toutes les autres bibliothèques, vous devez d'accès, mais c'est extrêmement complexe et horrible.
En tant que vos conditions sont effectivement conclue, je vous conseille de prendre un peu de recul et de trouver un moyen de retrait d'une ou de plusieurs restrictions. Si vous trouvez un FullTrust environnement pour compiler vos extraits dans, éliminer le besoin de code complet de soutien (p. ex. le passage à interpretted extrait de code de support), ou même de changer l'ensemble du cadre de quelque chose de non .Net.