[IronPython] Silverlight Application Hosting IronPython

Michael Foord fuzzyman at voidspace.org.uk
Sat May 9 13:30:40 CEST 2009


Hello guys,

I'm having problems with a C# Silverlight application that hosts IronPython.

First of all, this page 
http://sdlsdk.codeplex.com/Wiki/View.aspx?title=Hosting  implies that 
the following code should load assemblies for the hosted IronPython code:

            foreach (string name in new string[] { "mscorlib", "System", 
"System.Windows", "System.Windows.Browser", "System.Net" })
            {
                runtime.Host.PlatformAdaptationLayer.LoadAssembly(name);
            }

It doesn't - an import from System.Windows fails. The following code 
works as in a normal hosted environment:

            runtime.LoadAssembly(typeof(String).Assembly);
            runtime.LoadAssembly(typeof(Uri).Assembly);
            runtime.LoadAssembly(typeof(Canvas).Assembly);

Secondly, which is much worse but may be related, imports from Python 
files inside the xap fail when IronPython is hosted. I am using the 
following code:

            ScriptRuntimeSetup setup = Python.CreateRuntimeSetup(null);
            setup.HostType = 
typeof(Microsoft.Scripting.Silverlight.BrowserScriptHost);
            ScriptRuntime runtime = new ScriptRuntime(setup);
            ScriptEngine pe = Python.GetEngine(runtime);
           
            ScriptScope scope = pe.CreateScope();
            ScriptSource source = 
pe.CreateScriptSourceFromString(python_source, SourceCodeKind.Statements);
            source.Execute(scope);

How do I setup the platform adaptation layer so that it can import from 
inside the xap?

All the best,


Michael

-- 
http://www.ironpythoninaction.com/
http://www.voidspace.org.uk/blog





More information about the Ironpython-users mailing list