No, not really. I recently looked into serializing IPY class instances from C# in a hosting environment. I got it to work using some custom serialization code. Look into ISerializationSurrogate - I made a class that derives from it to make a custom Python object serializer. The python engine still needs the python class type to be define and "compiled" to be able to re-build the objects. It's a bit curly and ugly, and I'm still not sure what gotchas are lying in wait :)

L8r, Paul

Matthew Barnard wrote:
Ahhh interesting. It doesn't look good for remoting then ;)


On Fri, May 2, 2008 at 10:17 PM, Curt Hagenlocher <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:

    Well in the example I gave, the type of class foo would genrally
    be something like  IronPython.NewTypes.System.Object_1$2.  There's
    not going to be any "native" CLR code to which you can pass a
    List<IronPython.NewTypes.System.Object_1$2>, and if you're passing
    the data to other Python code, you may as well do it as a Python
    list or tuple.  It's the "dynamic" thing to do :).
List<IronPython.NewTypes.System.Object_1$2> isn't even type-safe
    for Python classes because IronPython maintains a cache of
    generated types and will reuse a type it has previously generated
    for any new class you define that's compatible with a
    previously-defined class.

On Fri, May 2, 2008 at 9:58 PM, Matthew Barnard
    <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>
    wrote:

        Thanks Curt, in C# I use generics (list & dict) containing
        class instances quite often. Is there a caveat to the dynamic
        typing that I'm missing?



        On Fri, May 2, 2008 at 7:52 PM, Curt Hagenlocher
        <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:

            This will get you a CLR type directly from your class object:
class foo(object):
                pass
            theType = clr.GetClrType(foo)
What use do you have for creating a generic with the
            resulting (dynamically-generated) type?

            On Fri, May 2, 2008 at 6:30 PM, Matthew Barnard
            <[EMAIL PROTECTED]
            <mailto:[EMAIL PROTECTED]>> wrote:

                Is the following the only way to create a generic
                containing a python class?


                from System.Collections.Generic import List
                from System import Type

                class Foo:
                    >>class stuff<<

                l = List[Type.GetType(Foo())]()


                I assume this is the nature of dynamic typing, but is
                there a way to get the type from the classobj, and not
                an instance?

                _______________________________________________
                Users mailing list
                [email protected]
                <mailto:[email protected]>
                http://lists.ironpython.com/listinfo.cgi/users-ironpython.com



            _______________________________________________
            Users mailing list
            [email protected] <mailto:[email protected]>
            http://lists.ironpython.com/listinfo.cgi/users-ironpython.com




-- ___________________________
        Matthew Barnard
        602 540 0652
        _______________________________________________
        Users mailing list
        [email protected] <mailto:[email protected]>
        http://lists.ironpython.com/listinfo.cgi/users-ironpython.com



    _______________________________________________
    Users mailing list
    [email protected] <mailto:[email protected]>
    http://lists.ironpython.com/listinfo.cgi/users-ironpython.com




--
___________________________
Matthew Barnard
602 540 0652
------------------------------------------------------------------------

_______________________________________________
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

Reply via email to