2017-03-17 108 views
0

我需要在我正在开发的应用程序中添加一个功能,以便轻松定制模块。实际上,使用某种脚本来修改应用程序提供的计算过程的行为将会很好。我正在开发C#和Roslyn中的应用程序......但是我怎样才能将上下文(参数和值)传递给Roslyn脚本并接收回应?用于C#应用程序的脚本引擎

+0

允许最终用户在语言级别提供脚本会产生巨大的漏洞。用户不仅可以修改计算行为,还可以创建与应用代码并行运行的任何其他代码,并具有完全的权限以连接到数据库等。而不是完全成熟的完整语言解析器,你更喜欢用数学表达式的域语言,比如http://mathparser.org/。 –

回答

2

如果C#适合您的情况,Roslyn是一个不错的选择。 看看Microsoft.CodeAnalysis.CSharp.Scripting NuGet包。它允许执行以纯字符串存储的C#代码段。 例如: await CSharpScript.EvaluateAsync("Console.WriteLine(\"Hello world!\")");

相关问题