Fair enough, thanks. Any suggestions on how to work around this in the meantime?
On 10/8/08, Dino Viehland <[EMAIL PROTECTED]> wrote: > > Ok, upon looking into this some more, I'm sad to say it looks like this > won't work right now L. We need to figure out a way to run the > serialization for just the base class and how to do that isn't entirely > obvious – so it probably won't make 2.0. I've opened a bug to track the > issue though: > http://www.codeplex.com/IronPython/WorkItem/View.aspx?WorkItemId=18823 > Feel free to vote on it so we'll fix it sooner. > > > > *From:* [EMAIL PROTECTED] [mailto: > [EMAIL PROTECTED] *On Behalf Of *Serge > *Sent:* Monday, October 06, 2008 9:15 PM > *To:* Discussion of IronPython > *Subject:* Re: [IronPython] Serializing IronPython classes > > > > Okay now this is getting interesting. I assumed that the warning was about > the child class, but I'm not sure. A bit of info: The parent C# class is > called Object. I did the override on on __reduce_ex__ as you suggested > but trying to pickle still produced the same error: > > Type 'IronPython.NewTypes.Engine.Object_1$2' in Assembly > 'Snippets.scripting, Version=0.0.0.0, Culture=neutral, > PublicKeyToken=null' is not marked as serializable. > > For curiosity, I called __reduce_ex__ on a child instance and > got the following error: expected Vector2, got Object_1$2 > > There are several Microsoft.Xna.Framework.Vector2 members and it looks like > they're being replaced by this Object_1$2 which I assumed at first to be the > child class because of its name. > __reduce_ex__ on the parent instances works fine. I'm out of my depth here > so I can't give more meaningful information. > > On 10/7/08, *Dino Viehland* <[EMAIL PROTECTED]> wrote: > > Ahh, that sounds like a bad bug, but I think I know what's causing it – > we're hitting the new.NET serialization support because __reduce_ex__ is now > defined for you J Can you add an override that dispatches __reduce_ex__ > to the object version, eg: > > > > def __reduce_ex__(self, *args): > > return object.__reduce_ex__(self, *args) > > > > We should probably do that automatically for user-defined instances which > should be easy to do if this works for you. > > > > *From:* [EMAIL PROTECTED] [mailto: > [EMAIL PROTECTED] *On Behalf Of *Serge > *Sent:* Monday, October 06, 2008 7:36 PM > *To:* Discussion of IronPython > *Subject:* Re: [IronPython] Serializing IronPython classes > > > > Thanks for the heads up, however trying to use cPickle, I still get the > error saying that the child class is not marked as serializable..? > > On 10/7/08, *Dino Viehland* <[EMAIL PROTECTED]> wrote: > > I would strongly encourage you to use cPickle or pickle instead of .NET > serialization. In 2.0 all .NET serializable types can also be pickled – > they define __reduce_ex__ which handles this. > > > > First off we should be setting the serializable bit on subclasses that are > serializable – that's just a bug that we're not doing that. But once we've > done that the problem w/ .NET serialization is that ultimately we need a > static method or type that we can point at that does the deserialization. > For a user defined type in Python we will need to be able to deserialize the > type, the module the type lives in, and presumably even the ScriptRuntime > which holds the module. Pickle handles this by serializing the module & > type name but w/o a ScriptRuntime we couldn't even get at that. We might > have been able to require a ScriptRuntime to be smuggled in the > StreamingContext but it's not clear that it would work well. > > > > So if you really want .NET serialization we can fix the bug – but you'll > need to implement ISerializable and figure out some way to deal getting the > class, module, and runtime information saved/restored yourself. > > > > *From:* [EMAIL PROTECTED] [mailto: > [EMAIL PROTECTED] *On Behalf Of *Serge > *Sent:* Sunday, October 05, 2008 9:24 PM > *To:* [email protected] > *Subject:* [IronPython] Serializing IronPython classes > > > > I've run into problems with serialization. I have a serializable class > defined in C# which gets extended from IP, however when I try to serialize a > collection of both parent and child instances, I get an exception saying > that the IP generated class is not marked as serializable. > > With the lack of attributes, I am guessing I must do something else to > enable serialization? > > Regards, Serge. > > > _______________________________________________ > 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 > > > > _______________________________________________ > 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
