Replacing the PAL definitely isn't very obvious.  First you need to subclass 
ScriptHost and override the PlatformAdaptationLayer property to return your 
subclass of the PAL.   There's lots of file system related APIs on the PAL 
class that you'll want to override and redirect to the database.  Then you 
create a ScriptRuntimeSetup object to create the script runtime - and on this 
you set the HostType property to the type of your ScriptHost.  The DLR will 
then create an instance of you ScriptHost and get the PAL from it.

An example of this is the Silverlight host: 
http://ironpython.codeplex.com/SourceControl/changeset/view/64416#760498 has 
the ScriptHost and PAL and then the ScriptRuntimeSetup gets created over in 
DynamicEngine.cs: 
http://ironpython.codeplex.com/SourceControl/changeset/view/64416#944508

From: [email protected] 
[mailto:[email protected]] On Behalf Of Mark Grice
Sent: Thursday, March 04, 2010 8:04 AM
To: [email protected]
Subject: Re: [IronPython] CreateScriptSourceFrom ... database?

Dino,

Thanks for the reply. Actually, I did have an error in the string, and I fixed 
that. But the real problem seems to be with the "Import" statement. I put my 
common methods in a file that I then import into the various Python script 
files.

It makes sense that the script would error, since, as a string, it doesn't know 
how to handle the import.

It seems like the only way to go would be to replace the PlatformAdaptionLayer 
class as you suggest -- but to be honest, I don't even know where to begin with 
that.

Dino Viehland Wrote:

>Are the \r and \n getting escaped somehow?  There should be no problem if the 
>new lines are in the string the same as they would be in a file.
>
>Your solution generally sounds like the right and easy one to go with.  If you 
>wanted a more complicated solution you could replace the PlatformAdaptionLayer 
>class >with your own which would read "files" from the database.  That would 
>enable things like "import foo" to work where the user could define a "foo" 
>script in the database.
_______________________________________________
Users mailing list
[email protected]
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

Reply via email to