Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Menilai Ungkapan C# Secara Dinamik Menggunakan Roslyn?

Bagaimanakah Saya Boleh Menilai Ungkapan C# Secara Dinamik Menggunakan Roslyn?

Patricia Arquette
Lepaskan: 2025-01-25 23:31:10
asal
954 orang telah melayarinya

How Can I Dynamically Evaluate C# Expressions Using Roslyn?

Gunakan Roslyn untuk menilai secara dinamik C#Expression

Dalam pembinaan aplikasi data -driven data atau menjalankan penjanaan kod masa, penilaian dinamik C#ekspresi sering diperlukan. Artikel ini akan menunjukkan cara menggunakan platform Microsoft Roslyn Compiler untuk mencapai matlamat ini.

Gunakan skrip API

API skrip Roslyn menyediakan cara yang mudah untuk menilai ungkapan dan serpihan kod. Langkah -langkah khusus adalah seperti berikut:

Pasang pakej NUGET:

Tambah

ke projek anda dengan NUGET.
  1. Ekspresi Penilaian: Gunakan kaedah Microsoft.CodeAnalysis.CSharp.Scripting untuk menilai ekspresi dan menyimpan hasilnya ke dalam pembolehubah yang sesuai. Contohnya:

  2. Tentukan jenis hasil: Untuk menentukan jenis ungkapan yang dinilai, kaedah generik boleh digunakan. Ini memastikan hasilnya kuat. Contohnya: CSharpScript.EvaluateAsync

    <code class="language-csharp"> var result = CSharpScript.EvaluateAsync("1 + 3").Result;</code>
    Salin selepas log masuk
  3. Penggunaan contoh
  4. Serpihan kod berikut menunjukkan cara menggunakan Ekspresi Ekspresi Penilaian API Skrip: CSharpScript.EvaluateAsync<T>

    ciri -ciri tinggi -level
    <code class="language-csharp"> var now = CSharpScript.EvaluateAsync<string>("System.DateTime.Now.ToString()").Result;</code>
    Salin selepas log masuk
Skrip API menyokong banyak ciri kanan, contohnya:

parameter kod lulus yang diluluskan oleh kod penilaian

memberikan rujukan kepada perhimpunan

<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>
Salin selepas log masuk
Nyatakan ruang nama dan kerangka sasaran

Untuk maklumat lanjut, sila rujuk dokumen API Roslyn Script:

https://www.php.cn/link/6e52547a0e7bca35975b6f8761e7ae

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menilai Ungkapan C# Secara Dinamik Menggunakan Roslyn?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan