Maison > développement back-end > C++ > Comment puis-je réaliser l'exécution de code dynamique en C # comme EVAL () de JavaScript?

Comment puis-je réaliser l'exécution de code dynamique en C # comme EVAL () de JavaScript?

DDD
Libérer: 2025-01-28 05:41:11
original
909 Les gens l'ont consulté

How Can I Achieve Dynamic Code Execution in C# Like JavaScript's eval()?

Le code dynamique du C # exécute

Similaire à la fonction

dans JavaScript, C # peut utiliser l'API de script Roslyn pour implémenter le code dynamique. Cette API vous permet de compiler et d'exécuter dynamiquement le code C # au moment de l'exécution.

eval() Exemple:

Supposons que vous ayez une variable entière et plusieurs attributs tels que "Property1", "Property2", "Property3". Vous souhaitez effectuer des opérations sur l'attribut "Property

i

" en fonction de la valeur i. i Solution utilisant l'API de script Roslyn:

Cet exemple charge dynamiquement l'assemblage et accédez à l'attribut en fonction de la valeur .

// 添加NuGet包 'Microsoft.CodeAnalysis.Scripting'
using Microsoft.CodeAnalysis.CSharp.Scripting;

await CSharpScript.EvaluateAsync($"System.Reflection.Assembly.LoadFrom(\"{new FileInfo(\"your-assembly-to-load.dll\").FullName}\")");

await CSharpScript.RunAsync($"var propertyValue = typeof(YourType).GetProperty(\"Property{i}\").GetValue(yourTypeInstance);");
Copier après la connexion
Autres fonctions:

i

L'API de script Roslyn vous permet d'exécuter n'importe quel fragment de code C #:

Vous pouvez également citer le code précédemment compilé:

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal