[IronPython] hosting and SetVariable
dinov at exchange.microsoft.com
Thu May 29 17:37:21 CEST 2008
What you want to do is put the variables in ScriptDomainManager.Globals/ScriptRuntime.Globals and then you can import them. For example:
Then you can do:
and we'll pick it up from globals. Just FYI IronPython.Hosting.PythonEngine is going away (along w/ CurrentEngine) so you're better off creating a ScriptRuntime and getting a ScriptEngine from it by name.
From: users-bounces at lists.ironpython.com [mailto:users-bounces at lists.ironpython.com] On Behalf Of Slide
Sent: Thursday, May 29, 2008 8:14 AM
To: Discussion of IronPython
Subject: [IronPython] hosting and SetVariable
Perhaps this is just missing knowledge on my part, but here goes.
I am using IP2.0 with the hosting API to add scripting support to my
application. I use the following code to create my main module from
the script file the user selects:
ICompiledCode code =
__main__ = code.MakeModule("__main__") as ScriptScope;
// create our module.
// add all the references the "Host" wanted.
foreach (string assembly in _assemblies)
// set all the variables that the "Host" wanted set.
foreach (KeyValuePair<string, object> obj in _objects)
The last foreach is setting up my object model which is available to
my scripts. My problem arises when I want to use one of these
variables from a script that is imported from the user selected script
For instance, if I add an object _objects.Add("MyObj", someObj), I can
reference that object in the user script as MyObj with no problem.
What I would like to do is have these variables global to all scripts
that are imported, etc. I tried import __main__ in my other scripts,
but __main__ doesn't show up in sys.modules (which is what I thought
PublishModule would do, but thats a different story).
Am I going about this the wrong way?
Users mailing list
Users at lists.ironpython.com
More information about the Ironpython-users