Проблемы встраивания IronPython в C # игру для скриптинга - PullRequest
1 голос
/ 08 декабря 2011

Я сейчас пытаюсь встроить этот проект xna console в мою игру, но у меня возникают проблемы с интерпретатором IronPython.

У меня проблема со следующим кодом

this.PythonOutput = new MemoryStream();
ScriptingEngine.pyEngine.SetStandardOutput(PythonOutput); // this line is giving me an error 'Microsoft.Scripting.Hosting.ScriptEngine' does not contain a definition for 'SetStandardOutput' and no extension method 'SetStandardOutput' accepting a first argument of type 'Microsoft.Scripting.Hosting.ScriptEngine' could be found
this.ASCIIEncoder = new ASCIIEncoding();

и вторая проблема с этим кодом

ClrModule clr = ScriptingEngine.pyEngine.Import("clr") as ClrModule;
clr.AddReference("Microsoft.Xna.Framework");
clr.AddReference("Microsoft.Xna.Framework.Game");

Получаю проблемы с ClrModule, не могу объявить переменную статического типа 'IronPython.Runtime.ClrModule, также импорт вызывает ошибки. Microsoft.Scripting.Hosting.ScriptEngine не содержит определения' Import '

Я использую IronPython версии 2.7.1 и .net4

1 Ответ

1 голос
/ 10 декабря 2011

SetStandardOutput перешел на свойство IO в ScriptRuntime, я полагаю, вместо ScriptEngine.

ClrModule является статическим классом, поэтому, если вам нужно вызвать AddReference для него, вы можете вызвать его с помощью ClrModule.AddReference (codeContext, ...).Вы можете найти, как получить контекст кода, но лучшим способом может быть:

dynamic clr = pyEngine.Import ("clr");clr.AddReference (...);

...