2012-09-26 6 views
11

こんにちは私は、私のアプリでスクリプトにRoslynを使いたいです。しかし、私は新しいバージョン(9月)を持っていて、私は混乱しています。私はいくつかの単純な機能でファイルを実行したい。たとえば :Roslyn Scripting

public int m(){ 
     return 6; 
} 

私は例acticleのためにそれについてのいくつかの記事を見つけました。そこにそれを行うにはいくつかの方法があるが、私のバージョンでは、私はIronPythonのスクリプト

のような何かのようにそれを使用したくSession.Create() ではありません。

var scriptEngine = new SciptEngine.ExecuteFile(fileWithFunction); 
dynamic d = getFunction(m); 

または

ダイナミックD = callFunction(M );

IronPythonスクリプトを使用する必要がありますか?

+1

を私はロスリンについては何も知りませんが、あなたはスクリプトエンジンとしてのC#を使用することができますそれなし。名前空間Microsoft.CsharpのクラスCSharpCodeProviderを使用して、実行時にアセンブリをコンパイルし、そのアセンブリからメソッドを呼び出したり、オブジェクトを作成したりすることができます。たとえば、ここの例を参照してください:http://www.crowsprogramming.com/archives/99 –

+0

すぐにお返事ありがとうございます。しかし、私はMogreのゲームでそれを使いたいと思っていました。私の上司はRoslynを使ってみるように言いました。なぜなら、C#で書かれたC#コンパイラだから、はるかに早くできるからです。私はそれが本当であるかどうかわかりませんが、誰かがそれをやる方法を知っていれば、私はそれをテストすることができます。 – wolen

答えて

17

APIは記事がで書かれたオリジナルのCTP以来、大幅に変更されていないシナリオの場合:。

var scriptEngine = new ScriptEngine(); 
var session = scriptEngine.CreateSession(); 
session.AddReference("System"); 
session.AddReference("System.Core"); 
session.Execute(@"public int m() { return 6; }"); 

int six = session.Execute<int>("m()");