[IronPython] FW: FW: FW: returning inherited classes to .NET

Howland-Rose, Kyle Kyle.Howland-Rose at aar.com.au
Fri Feb 22 07:07:09 CET 2008


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: users-bounces at lists.ironpython.com
[mailto:users-bounces at lists.ironpython.com] 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, 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 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 <
Kyle.Howland-Rose at aar.com.au> 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: users-bounces at lists.ironpython.com [mailto:
users-bounces at lists.ironpython.com] 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 <
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/> 
		<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 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
<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
<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).
 
*************************************************************************
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20080222/159a6961/attachment.html>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: ATT388781.txt
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20080222/159a6961/attachment.txt>


More information about the Ironpython-users mailing list