The latest Hosting API Spec is available at http://compilerlab.members.winisp.net/. It's available as both doc (http://compilerlab.members.winisp.net/dlr-spec-hosting.doc) or PDF (http://compilerlab.members.winisp.net/dlr-spec-hosting.pdf).
Thanks Sesh -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Slide Sent: Thursday, May 29, 2008 8:42 AM To: Discussion of IronPython Subject: Re: [IronPython] hosting and SetVariable Apparently I need to update to the latest IP2.0 beta. I don't even see CurrentManager.Globals, thanks for the info. On Thu, May 29, 2008 at 8:37 AM, Dino Viehland <[EMAIL PROTECTED]> wrote: > What you want to do is put the variables in > ScriptDomainManager.Globals/ScriptRuntime.Globals and then you can import > them. For example: > > ScriptDomainManager.CurrentManager.Globals.SetVariable("hello_world", "hi!"); > > Then you can do: > > import hello_world > > 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. > > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] 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 = > IronPython.Hosting.PythonEngine.CurrentEngine.Compile(SourceUnit.CreateFileUnit(_context, > path), _error_sink); > __main__ = code.MakeModule("__main__") as ScriptScope; > > // create our module. > ScriptDomainManager.CurrentManager.PublishModule(__main__, "__main__"); > > // add all the references the "Host" wanted. > foreach (string assembly in _assemblies) > > Microsoft.Scripting.ClrModule.GetInstance().AddReference(Path.GetFileNameWithoutExtension(assembly)); > > // set all the variables that the "Host" wanted set. > foreach (KeyValuePair<string, object> obj in _objects) > __main__.SetVariable(obj.Key, obj.Value); > > 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 > file. > > 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? > > Thanks > > slide > > -- > slide-o-blog > http://slide-o-blog.blogspot.com/ > _______________________________________________ > Users mailing list > [email protected] > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com > _______________________________________________ > Users mailing list > [email protected] > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com > -- slide-o-blog http://slide-o-blog.blogspot.com/ _______________________________________________ Users mailing list [email protected] http://lists.ironpython.com/listinfo.cgi/users-ironpython.com _______________________________________________ Users mailing list [email protected] http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
