[IronPython] FW: returning inherited classes to .NET
Curt Hagenlocher
curt at hagenlocher.org
Fri Feb 22 06:28:46 CET 2008
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 <
Kyle.Howland-Rose at aar.com.au> 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: users-bounces at lists.ironpython.com
> [mailto:users-bounces at lists.ironpython.com] 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
> <Kyle.Howland-Rose at aar.com.au> 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/>
>
> 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/>
>
> 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 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
>
>
>
>
>
> ************************************************************************
>
> 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 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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20080221/3c237d4f/attachment.html>
More information about the Ironpython-users
mailing list