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

関連する問題