Do tej pory mam prostą klasę, która otacza silnik python (IronPython) do mojego użytku. Chociaż kod wygląda na duży, to jest naprawdę prosty, więc skopiuję go tutaj, aby był bardziej zrozumiały w moim problemie.Uruchomić konkretną funkcję Pythona w języku C# z IronPythonem
Oto kod:
public class PythonInstance
{
ScriptEngine engine;
ScriptScope scope;
ScriptSource source;
public PythonInstance()
{
engine = Python.CreateEngine();
scope = engine.CreateScope();
}
public void LoadCode(string code)
{
source = engine.CreateScriptSourceFromString(code, Microsoft.Scripting.SourceCodeKind.Statements);
source.Compile();
}
public void SetVariable(string key, dynamic variable)
{
scope.SetVariable(key, variable);
}
public void RunCode()
{
source.Execute(scope);
}
public void CallFunction(string function)
{
//?????? no idea what to call here
}
}
Tak, to działa świetnie, ale to tylko pozwala mi wykonywać wszystkie skrypt Pythona na raz ... ale to, co chciałbym zrobić, to aby móc nazwać poszczególne funkcje z poziomu skryptu pythona.
Tak, moje pytanie: Jak wywołać określoną funkcję w załadowanym skrypcie?
Próbowałem znaleźć informacje lub samouczki, ale niestety nic nie mogłem znaleźć.
Czy spojrzał na http://stackoverflow.com/questions/13231913/how-do-i-call-a-specific -method-from-a-python-script-in-c i http://stackoverflow.com/questions/7053172/how-can-i-call-ironpython-code-from-ac-sharp-app? –
@Simon pierwszy tak, drugi nie. Dziękuję za link, przeczytam go teraz. – NewProger