Maison > développement back-end > C++ > Les fragments de code C # peuvent-ils être exécutés dynamiquement à partir d'un fichier texte et devraient-ils être compilés pour des performances optimales?

Les fragments de code C # peuvent-ils être exécutés dynamiquement à partir d'un fichier texte et devraient-ils être compilés pour des performances optimales?

Patricia Arquette
Libérer: 2025-02-01 14:36:10
original
663 Les gens l'ont consulté

Can C# Code Fragments Be Dynamically Executed from a Text File, and Should They Be Compiled for Optimal Performance?

Exécution dynamique du fichier texte C # fragment de code

Question:

Le fragment de code C # peut-il être stocké dans le fichier texte et l'exécuter dynamiquement? Afin d'obtenir les meilleures performances, dois-je d'abord compiler le code?

Réponse:

Oui, vous pouvez compiler et exécuter dynamiquement le fragment de code C #. Pour le langage .NET statique comme C #, la meilleure façon est d'utiliser le modèle de codé (modèle d'objet de document de code). La codéation peut construire et exécuter dynamiquement des fragments de code.

Utilisez CSharpCodeProvider pour compiler:

CSharpCodeProvider fournit une interface pour compiler le code C #. Exemples comme suit:

à partir du code de compilation de texte:

Pour compiler le code à partir du texte, veuillez utiliser CompileSemblyFromsource:

using System.CodeDom.Compiler;
using Microsoft.CSharp;

var csc = new CSharpCodeProvider(new Dictionary<string, string>() { { "CompilerVersion", "v3.5" } });
Copier après la connexion

<行> Exécutez le code compilé (utilisez la réflexion):

Une fois la compilation terminée, utilisez la réflexion pour charger et exécuter dynamiquement l'assemblage:

var parameters = new CompilerParameters(new[] { "mscorlib.dll", "System.Core.dll" }, "foo.exe", true);
parameters.GenerateExecutable = true;
CompilerResults results = csc.CompileAssemblyFromSource(parameters, codeText);
Copier après la connexion
L'avantage de cette méthode est que les performances ont été améliorées car le code a été compilé avant l'exécution.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal