IronPython - Load script from string in C# 4.0 application

c#, embedding, ironpython

Solution

You can use `engine.CreateScriptSourceFromString` to load the script into the scope from a string, rather than a file.

     StringBuilder sb = new StringBuilder();
     sb.Append("def helloworld():\r\n");
     sb.Append("    print \"hello world\"\r\n");
     string code = sb.ToString();
     ScriptEngine engine = Python.CreateEngine();         
     ScriptSource source = engine.CreateScriptSourceFromString(code, SourceCodeKind.File);
     ScriptScope scope = engine.CreateScope();
     source.Execute(scope);
     Func<object> func = scope.GetVariable<Func<object>>("helloworld");
     Console.WriteLine(func());

Problem

I have the following code (just a test): ``` var engine = Python.CreateEngine(); var runtime = engine.Runtime; try { dynamic test = runtime.UseFile(@"d:\test.py"); test.SetVariable("y", 4); test.SetVariable("client", UISession.ControllerClient); test.Simple(); } catch (Exception ex) { var eo = engine.GetService<ExceptionOperations>(); Console.WriteLine(eo.FormatException(ex)); } ``` But I would like to load the script from a string instead.

Original source