在运行时动态评估 C# 表达式的技巧
在软件开发中,有时需要在运行时动态评估 C# 表达式。本文将提供一种现代化、高效的解决方案。
传统方法通常使用 CSharpCodeProvider
来编译和执行表达式,但这种方法已经过时,不再符合现代 C# 的最佳实践。
更好的方法是利用 Roslyn 脚本 API。该 API 提供了一个专门用于动态评估 C# 脚本和表达式的引擎,简化了表达式评估过程:
<code class="language-csharp">using Microsoft.CodeAnalysis.CSharp.Scripting; var result = CSharpScript.EvaluateAsync("1 + 3").Result;</code>
此示例评估表达式 "1 3",并将结果赋值给 result
变量。 要评估具有特定数据类型的代码片段,可以使用相应的泛型方法:
<code class="language-csharp">var now = CSharpScript.EvaluateAsync<string>("System.DateTime.Now.ToString()").Result;</code>
Roslyn 脚本 API 还支持传递参数、管理命名空间以及处理更复杂的场景。 更多信息,请参考官方文档:https://www.php.cn/link/150353f887435acbf6ef0a57e4a3dbca
以上是如何使用 Roslyn 在运行时动态计算 C# 表达式?的详细内容。更多信息请关注PHP中文网其他相关文章!