Awesome, thanks Curt.  
 
Do you have any idea as to whether this is a bug or a feature?

________________________________

From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Curt
Hagenlocher
Sent: Saturday, 23 February 2008 1:33 AM
To: Discussion of IronPython
Subject: Re: [IronPython] FW: FW: FW: returning inherited classes to
.NET


I built a test executable and was able to reproduce this.  And when I
changed 
clr.AddReferenceToFile("WebControlLibrary.dll")
to
clr.AddReference("WebControlLibrary")
it worked as expected.

On Fri, Feb 22, 2008 at 6:02 AM, Curt Hagenlocher <[EMAIL PROTECTED]>
wrote:


        Ah, no.  I was thinking that you would modify your VB code to
launch it as a console app (for instance) rather than from inside of 
ASP.NET <http://asp.net/>  -- and see if you still get the same error. 


        On Thu, Feb 21, 2008 at 10:07 PM, Howland-Rose, Kyle <
[EMAIL PROTECTED]> wrote:
        

                Thanks for your help so late Curt (not that I need a
quick answer at all).
                 
                I am sure I am missing something big-time here and
"talking" as cross-purposes, but, to my mind the reason I don't have a
problem when running from the command line is because all I am doing is
running the ipy.exe on the file which loads some assemblies, creates a
class definition and a function definition and then terminates without
even instantiating the class.  Is this what you mean by "running it
directly"?   
                 
                Thanks again,
                Kyle

________________________________

                
                From: [EMAIL PROTECTED] [mailto:
[EMAIL PROTECTED] On Behalf Of Curt Hagenlocher
                
                Sent: Friday, 22 February 2008 4:55 PM
                To: Discussion of IronPython
                Subject: Re: [IronPython] FW: FW: returning inherited
classes to .NET
                
                
                If you're only getting the error under ASP.NET
<http://asp.net/> , then it's highly likely that you're loading multiple
copies of the same assembly, which is why the CLR can't cast your Python
class back to the VB base -- it literally considers them to be two
different classes.  This may be related to the way ASP.NET
<http://asp.net/>  makes shadow copies of your files, but there could be
other reasons as well (none of which, unfortunately, come to mind right
now).
                 
                Using an interface instead of a base class would give
you the same results.
                
                On Thu, Feb 21, 2008 at 9:44 PM, Howland-Rose, Kyle <
[EMAIL PROTECTED]> wrote:
                

                        It runs fine from the command line but then it
does not do much ... yet.  For the moment I am simplifying it by
removing IP :(
                         
                        I wanted to so some moderately heavy reflection
which to my thinking should be easier from IP but I will use VB for now.

                         
                        I assume I *should* be able to return a derived
python class to VB?  Alternatively I could implement an interface.  How
can IP implement a .NET interface?
                        (All pointers to pre-existing doco warmly
received :)
                         
                        Thanks
                        Kyle

________________________________

                        
                        From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Curt
Hagenlocher
                        
                        Sent: Friday, 22 February 2008 4:29 PM
                        To: Discussion of IronPython
                        Subject: Re: [IronPython] FW: returning
inherited classes to .NET
                        
                        
                        My apologies; I wasn't reading the code
correctly.  That's probably a sign that I should be going to bed. :)
Have you tried simplifying your version just a little bit by running it
directly rather than through ASP.NET <http://asp.net/> ?

                         
                        On Thu, Feb 21, 2008 at 8:43 PM, Howland-Rose,
Kyle <[EMAIL PROTECTED]> wrote:
                        

                                Hi Curt,
                                
                                Thanks for replying.  When I view the
link I see the following:
                                
                                The .NET code creates the "Test" class
and then runs the python code
                                which imports the "Test" class a
subclasses it to create python class
                                "X".
                                
                                Class "X" is then called and cast to
type "Test" and assigned to the
                                value obj.
                                
                                Is this what you are looking at?
                                
                                My code is pretty much identical.  The
VB looks like:
                                
                                
                                Public MustInherit Class ChildControl
                                   Public Function Control() As
WebControl
                                       Return Nothing
                                   End Function
                                   Public Function GetValue() As String
                                       Return Nothing
                                   End Function
                                   Public Function SetValue(ByVal value
As Object) As String
                                       Return Nothing
                                   End Function
                                End Class
                                
                                Class IPReflection
                                   Private Shared Instance As
IPReflection = Nothing
                                   Private PyEngine As PythonEngine
                                   Private PyModule As EngineModule
                                
                                   Public Shared Function Inst() As
IPReflection
                                       If Instance Is Nothing Then
                                           Instance = New IPReflection
                                       End If
                                       Return Instance
                                   End Function
                                
                                   Private Sub New()
                                       Dim path As String =
HttpContext.Current.Request.MapPath(".")
                                       PyEngine = New PythonEngine
                                       PyEngine.AddToPath(path)
                                       PyModule = PyEngine.CreateModule
                                       PyEngine.DefaultModule = PyModule
                                
        
PyEngine.ExecuteFile(HttpContext.Current.Request.MapPath("CustomControls
                                .py"))
                                   End Sub
                                
                                   Public Function GetChildControl() As
ChildControl
                                       Return
        
CType(Operations.Ops.Call(PyModule.Globals("GetControl")), ChildControl)
                                   End Function
                                End Class
                                
                                And the python looks like:
                                
                                import clr
                                import sys
                                
                                clr.AddReference('System')
                                import System
                                
                                sys.path.append(sys.path[0] + "/bin")
                                
        
clr.AddReferenceToFile("WebControlLibrary.dll")
                                clr.AddReference('System.Web')
                                
                                from System.Web.UI.WebControls import
Label
                                
                                from WebControlLibrary import
ChildControl
                                
                                class LabelChildControl(ChildControl):
                                       def __init__(self):
                                               self.control = Label()
                                       def Control(self):
                                               return self.control
                                
                                def GetControl():
                                       return LabelChildControl()
                                
                                
                                Thanks again,
                                Kyle
                                

                                ________________________________
                                
                                From: [EMAIL PROTECTED]
                                
                                [mailto:
[EMAIL PROTECTED] On Behalf Of Curt
                                Hagenlocher
                                Sent: Friday, 22 February 2008 3:08 PM
                                To: Discussion of IronPython
                                Subject: Re: [IronPython] returning
inherited classes to .NET
                                


                                The page in question doesn't seem to
show what you describe -- deriving
                                a Python class from a C# class.  Maybe
you could show us your sample
                                code?
                                
                                
                                On Thu, Feb 21, 2008 at 7:39 PM,
Howland-Rose, Kyle
                                <[EMAIL PROTECTED]> wrote:
                                
                                
                                       Hi all,
                                       I am following
                                
                                
                                
http://www.ironpython.info/index.php/Using_Python_Classes_from_.NET
                                <
http://www.ironpython.info/index.php/Using_Python_Classes_from_.NET>
                                but using VB.
                                
                                       In VB I declare a class and
derive a python 1.1 class from it
                                but when I return it I get the
exception:
                                
                                       "Unable to cast object of type
        
'IronPython.NewTypes.WebControlLibrary.ChildControl_1' to type
                                'WebControlLibrary.ChildControl'."
                                
                                       The page referenced above just
seems to cast the python class
                                instance to the C# class instance but
this does not work for me in VB.
                                
                                       Any help would be appreciated :)
                                
                                       Thanks,
                                
                                       Kyle
                                
                                
                                
                                
        
************************************************************************
                                
                                       Allens Arthur Robinson online: 
http://www.aar.com.au <http://www.aar.com.au/> 
                                <http://www.aar.com.au/>
                                
                                       This email is confidential and
may be subject to legal or other
                                professional privilege. It is also
subject to copyright. If you have
                                received it in error, confidentiality
and privilege are not waived and
                                you must not disclose or use the
information in it. Please notify the
                                sender by return email and delete it
from your system. Any personal
                                information in this email must be
handled in accordance with the Privacy
                                Act 1988 (Cth).
                                
                                
        
************************************************************************
                                *
                                
                                
                                
                                
        
************************************************************************
                                
                                       Allens Arthur Robinson online: 
http://www.aar.com.au <http://www.aar.com.au/> 
                                <http://www.aar.com.au/>
                                
                                       This email is confidential and
may be subject to legal or other
                                professional privilege. It is also
subject to copyright. If you have
                                received it in error, confidentiality
and privilege are not waived and
                                you must not disclose or use the
information in it. Please notify the
                                sender by return email and delete it
from your system. Any personal
                                information in this email must be
handled in accordance with the Privacy
                                Act 1988 (Cth).
                                
                                
        
************************************************************************
                                *
                                
                                
        
_______________________________________________
                                       Users mailing list
                                       Users@lists.ironpython.com
                                       
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
                                
        
_______________________________________________
                                       Users mailing list
                                       Users@lists.ironpython.com
                                       
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
                                
                                
                                
                                
                                
        
************************************************************************
                                
                                Allens Arthur Robinson online: 
http://www.aar.com.au <http://www.aar.com.au/> 
                                
                                This email is confidential and may be
subject to legal or other professional privilege. It is also subject to
copyright. If you have received it in error, confidentiality and
privilege are not waived and you must not disclose or use the
information in it. Please notify the sender by return email and delete
it from your system. Any personal information in this email must be
handled in accordance with the Privacy Act 1988 (Cth).
                                
        
************************************************************************
*
                                

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


                         

        
************************************************************************
                         
                        Allens Arthur Robinson online: 
http://www.aar.com.au <http://www.aar.com.au/> 
                         
                        This email is confidential and may be subject to
legal or other professional privilege. It is also subject to copyright.
If you have received it in error, confidentiality and privilege are not
waived and you must not disclose or use the information in it. Please
notify the sender by return email and delete it from your system. Any
personal information in this email must be handled in accordance with
the Privacy Act 1988 (Cth).
                         
        
************************************************************************
*


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


                 

        
************************************************************************
                 
                Allens Arthur Robinson online: http://www.aar.com.au
<http://www.aar.com.au/> 
                 
                This email is confidential and may be subject to legal
or other professional privilege. It is also subject to copyright. If you
have received it in error, confidentiality and privilege are not waived
and you must not disclose or use the information in it. Please notify
the sender by return email and delete it from your system. Any personal
information in this email must be handled in accordance with the Privacy
Act 1988 (Cth).
                 
        
************************************************************************
*


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




************************************************************************
 
Allens Arthur Robinson online: http://www.aar.com.au
 
This email is confidential and may be subject to legal or other professional 
privilege. It is also subject to copyright. If you have received it in error, 
confidentiality and privilege are not waived and you must not disclose or use 
the information in it. Please notify the sender by return email and delete it 
from your system. Any personal information in this email must be handled in 
accordance with the Privacy Act 1988 (Cth).
 
*************************************************************************
_______________________________________________
Users mailing list
Users@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
_______________________________________________
Users mailing list
Users@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

Reply via email to