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

Howland-Rose, Kyle Kyle.Howland-Rose at aar.com.au
Fri Feb 22 06:44:34 CET 2008


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
 
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/680ea4da/attachment.html>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: ATT386538.txt
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20080222/680ea4da/attachment.txt>


More information about the Ironpython-users mailing list