[IronPython] Hosting API and PlatformAdaptationLayer

Orian, Helmut helmut.orian at schema.de
Wed Jun 11 13:05:40 CEST 2008


hi Jimmy,


yes, makes a lot of sense to me :-)

already had my own classes derived from PAL and ScriptHost.
i have just overseen the ScriptRuntimeSetup and its HostType property to register them.

works now for me.


Thanks,
Helmut


-----Ursprüngliche Nachricht-----
Von: users-bounces at lists.ironpython.com [mailto:users-bounces at lists.ironpython.com] Im Auftrag von Jimmy Schementi
Gesendet: Dienstag, 10. Juni 2008 21:59
An: Discussion of IronPython
Betreff: Re: [IronPython] Hosting API and PlatformAdaptationLayer

The public API to do this is ScriptRuntimeSetup.HostType; an example of using this is in Silverlight. Take a look at Microsoft.Scripting.Silverlight/BrowserPAL.cs and Microsoft.Scripting.Silverlight/BrowserScriptHost.cs. Here's the basics:

class YourPAL : PlatforAdaptationLayer {
  static readonly YourPAL PAL = new YourPAL();
  ...
}

class YourScriptHost : ScriptHost {
  ...

  public override PlatformAdaptationLayer PlatformAdaptationLayer {
    get {
      return YourPAL.PAL;
    }
  }
}

// In code that hosts the DLR:
ScriptRuntimeSetup setup = new ScriptRuntimeSetup(true) setup.HostType = typeof(YourScriptHost) ScriptRuntime runtime = ScriptRuntime.Create(setup) ...

Make sense?
~Jimmy

> -----Original Message-----
> From: users-bounces at lists.ironpython.com [mailto:users- 
> bounces at lists.ironpython.com] On Behalf Of Orian, Helmut
> Sent: Tuesday, June 10, 2008 4:00 AM
> To: users at lists.ironpython.com
> Subject: [IronPython] Hosting API and PlatformAdaptationLayer
>
> At the moment I am hosting IronPython and IronRuby using the sources 
> from the Silverlight2beta1 SDK which I recompiled to work against .NET 
> 2.0 because it is the latest build of the DLR I found where both 
> projects work with a common Microsoft.Scripting.dll.
>
> We have a client-server architecture and all our config-files and 
> other script language files (like xsl and some own languages :-) are 
> stored and versioned in our central application server instead of a harddisk.
>
> For the initial python script I want to execute this was no problem, 
> but to get the import statement of python ('require' in ruby) to work 
> I implemented a class deriving from 
> Microsoft.Scripting.PlatformAdaptationLayer. This implementation 
> worked perfectly for me, but I have not found a way to bootstrap 
> ScriptRuntime and ScriptHost with my implementation by using the 
> current public API in Microsoft.Scripting.
>
> I had to use an own implementation derived from ScriptHost to inject 
> my derived PlatformAdaptationLayer instance with (ugly) reflection 
> into the ScriptRuntime.
>
> It would be nice if I could set/use my derived PlatformAdaptationLayer 
> instance by public API.
>
>
> Thanks,
> Helmut
>
>
> ----------------------------------------------------------------------
> -
> ----
>
>  An- und Abmeldung zur SCHEMA Mailingliste unter 
> http://www.schema.de/mail
>
> ----------------------------------------------------------------------
> -
> ----
>
>
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

_______________________________________________
Users mailing list
Users at lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com



More information about the Ironpython-users mailing list