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.
Ekspresi Penilaian: Gunakan kaedah Microsoft.CodeAnalysis.CSharp.Scripting
untuk menilai ekspresi dan menyimpan hasilnya ke dalam pembolehubah yang sesuai. Contohnya:
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>
Serpihan kod berikut menunjukkan cara menggunakan Ekspresi Ekspresi Penilaian API Skrip:
CSharpScript.EvaluateAsync<T>
<code class="language-csharp"> var now = CSharpScript.EvaluateAsync<string>("System.DateTime.Now.ToString()").Result;</code>
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>
Untuk maklumat lanjut, sila rujuk dokumen API Roslyn Script:
https://www.php.cn/link/6e52547a0e7bca35975b6f8761e7aeAtas 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!