2016-07-08 5 views
0

このコードを持つ:パラメータをメソッドに渡し、戻り値を読み取りますか?

var code = "public class TestClass {" + 
      " public int HelloWorld(int num) {" + 
      " return 5 + num;" + 
      " }" + 
      "}"; 

var script = CSharpScript.Create(code); 
var x = (await script.RunAsync()).ReturnValue; 

どのようにメソッドを呼び出し、戻り値を読んで、パラメータの値を渡すのですか?

+0

のを見てみましょう。私はそれをどうやって行うのか分からない。 – SLaks

+1

https://github.com/dotnet/roslyn/wiki/Scripting-API-Samples#parameter – wablab

答えて

0

他のコードを続行するのが最も簡単です。

var call = await script.ContinueWith<int>("new TestClass().HelloWorld(3)").RunAsync(); 
var x = call.ReturnValue; 

ところで、CSharpScriptあなたは普通のC#のプログラムのようにクラスとメソッドを持つ必要はありませんスクリプトエンジンです。スクリプトのコンテンツには5 + numを使用できます。

var code = "5 + num"; 
var numValue = 3; 

var setParam = await CSharpScript.RunAsync("var num = " + numValue + ";"); 
var runCode = await setParam.ContinueWithAsync(code); 
var x = runCode.ReturnValue; 

はフルたとえば、その後、リフレクションを使用して、あなたがスクリプトによってコンパイルされたタイプを取得する必要がありますRoslynScript/Script.cs

関連する問題