2017-03-17 110 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!\")");

相關問題