So, if I understand this right, you have user code, which you need to run each 
time first ... and then your code which you want to run once after. Something 
like:

// when your app starts, or something, compile your code, but don't run yet
var compiledCode = engine.CreateScriptSourceFromString(code).Compile();

// do other stuff ....

// execute user code
var userScope = engine.ExecuteFile("usercode.py");

// run your code in the user's code's scope
compiledCode.Execute(userScope);

From: [email protected] 
[mailto:[email protected]] On Behalf Of R. Bear Smith
Sent: Monday, March 02, 2009 11:54 AM
To: [email protected]
Subject: [IronPython] CustomSymbolDictionary question

Hi all,

I have a situation where I need to run a script many times with a different 
scope each time.  I want to be able to substitute an instance of a class each 
time it is asked for.   For example,

x = MyCSharpClass()

Using CustomSymbolDictionary I am able to store the class created on the first 
call and then substitute it for every additional call to x from different 
scopes.  While this works to provide the same class instance to every scope, a 
new class is being created on every call and replaced with the original class.  
Is there a way to only create the class once.  The script will be user code so 
I have no prior knowledge of variable names and such.  Any ideas would be 
appreciated.

Thanks
_______________________________________________
Users mailing list
[email protected]
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

Reply via email to