Maison > développement back-end > C++ > Comment puis-je évaluer dynamiquement les expressions C # à l'aide de Roslyn?

Comment puis-je évaluer dynamiquement les expressions C # à l'aide de Roslyn?

Patricia Arquette
Libérer: 2025-01-25 23:31:10
original
954 Les gens l'ont consulté

How Can I Dynamically Evaluate C# Expressions Using Roslyn?

Utilisez Roslyn pour évaluer dynamiquement les expressions C#

Dans des scénarios tels que la création d'applications basées sur les données ou la génération de code d'exécution, il est souvent nécessaire d'évaluer dynamiquement les expressions C#. Cet article montre comment y parvenir à l’aide de la plateforme du compilateur Microsoft Roslyn.

Utiliser l'API de script

L'API de script de Roslyn offre un moyen pratique d'évaluer des expressions et des extraits de code. Les étapes spécifiques sont les suivantes :

  1. Installer le package NuGet : Utilisez NuGet pour ajouter le package Microsoft.CodeAnalysis.CSharp.Scripting à votre projet.

  2. Évaluer une expression : Utilisez la méthode CSharpScript.EvaluateAsync pour évaluer une expression et stocker le résultat dans une variable appropriée. Par exemple :

    <code class="language-csharp"> var result = CSharpScript.EvaluateAsync("1 + 3").Result;</code>
    Copier après la connexion
  3. Spécifiez le type de résultat : Pour spécifier le type de l'expression évaluée, vous pouvez utiliser la méthode générique CSharpScript.EvaluateAsync<T>. Cela garantit que le résultat est fortement typé. Par exemple :

    <code class="language-csharp"> var now = CSharpScript.EvaluateAsync<string>("System.DateTime.Now.ToString()").Result;</code>
    Copier après la connexion

Exemple d'utilisation

L'extrait de code suivant montre comment utiliser l'API de script pour évaluer un exemple d'expression :

<code class="language-csharp">using Microsoft.CodeAnalysis.CSharp.Scripting;
using Microsoft.CodeAnalysis.Scripting;

// 评估 "1 + 3"
var result = CSharpScript.EvaluateAsync("1 + 3").Result;
Console.WriteLine(result); // 输出 4

// 评估 "System.DateTime.Now.ToString()"
var now = CSharpScript.EvaluateAsync<string>("System.DateTime.Now.ToString()").Result;
Console.WriteLine(now); // 输出当前日期时间</code>
Copier après la connexion

Fonctionnalités avancées

L'API de script prend en charge de nombreuses fonctionnalités avancées, telles que :

  • Passer les paramètres au code évalué
  • Fournir une référence à l'assemblage
  • Spécifiez l'espace de noms et le framework cible

Pour plus de détails, veuillez vous référer à la documentation de l'API Roslyn Script : https://www.php.cn/link/6e52547a0e7bca35975b6f1f8761e7ae

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!

source:php.cn
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