问题
Consider the code below:
ScriptRuntimeSetup setup = Python.CreateRuntimeSetup(null);
ScriptRuntime runtime = new ScriptRuntime(setup);
ScriptEngine engine = Python.GetEngine(runtime);
ScriptScope scope = engine.CreateScope();
scope.SetVariable("message", "Hello, world!");
string script = @"print message";
ScriptSource source = scope.Engine.CreateScriptSourceFromString(script, SourceCodeKind.Statements);
source.Execute();
This code yields the following exception:
Microsoft.Scripting.Runtime.UnboundNameException was unhandled Message="name 'message' is not defined"
What am I missing?
回答1:
It should be "source.Execute(scope);" instead of "source.Execute();"
回答2:
Found this: A 3 minute guide to embedding IronPython in a C# application.
来源:https://stackoverflow.com/questions/736443/ironpython-and-c-sharp-script-access-to-c-sharp-objects