2012-09-26 29 views
11

Witam Chcę używać Roslyn do skryptowania w mojej aplikacji. Ale mam nową (wrześniową) wersję i jestem zdezorientowany. Chcę wykonać plik z jakąś prostą funkcją. Na przykład:Roslyn Scripting

public int m(){ 
     return 6; 
} 

znalazłem kilka artykułów o tym na przykład acticle. Jest jakiś sposób, aby to zrobić, ale w mojej wersji nie jest Session.Create() Chcę używać go jak IronPython skryptów

coś takiego:

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

lub

dynamicznego D = (m CallFunction);

Czy to możliwe, czy muszę używać skryptów IronPython?

+1

Nie wiemy nic o Roslyn, ale można użyć C# jak silnik skryptowy bez tego. Możesz użyć klasy CSharpCodeProvider z przestrzeni nazw Microsoft.Csharp, aby skompilować złożenie w środowisku wykonawczym i wywołać metody lub utworzyć obiekty z tego zestawu. Zobacz na przykład tutaj: http://www.crowsprogramming.com/archives/99 –

+0

Dzięki za szybką odpowiedź. Ale: chcę go użyć w mojej grze Mogre, a mój przełożony powiedział, żebym spróbował użyć Roslyn, ponieważ jest to kompilator C# napisany w języku C#, więc może być znacznie szybciej. Nie wiem, czy to prawda, ale jeśli ktoś wie, jak to zrobić, to mogę to przetestować. – wolen

Odpowiedz

17

API nie zmieniła się znacząco od pierwotnego CTP, że artykuł został napisany w Dla własnego scenariusza.

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()"); 
Powiązane problemy