[Python.NET] Accessing class interface with private methods
Tijs Wickardt
wickardt at xs4all.nl
Tue Dec 11 20:23:16 CET 2007
Actually, there is a way to access private members in C#.
You can use System.Reflection to modify access directives.
Since you can't access private members from Python .net, you could write a
seperate C# module that unhides private members and exposes them as
public.
You could then call those public methods from Python for .NET.
Cumbersome, but should work.
Kind regards, Tijs
Feihong Hsu hsu.feihong at yahoo.com
Sun Dec 9 15:54:23 CET 2007
Previous message: [Python.NET] Accessing class interface with private methods
Next message: [Python.NET] Structure as argument
Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
--------------------------------------------------------------------------------
This is not supported. You can't access private methods in C# or VB.NET
either, so why should Python.NET be able to access them? But one thing to
note is that you CAN access protected methods directly in Pyhon.NET (you
don't have to make a subclass to use a protected method).
- Feihong
alex omoto <lance23runner at yahoo.com> wrote: Hi,
I am having trouble using Python.NET in accessing class interface methods
that are declared private. As an example,
Public Interface Iface
Property Func() As Boolean
End Interface
Public Class Foo
Implements Iface
Private Function Func() As Boolean
Return True
End Function
Public ReadOnly Property IFACE() As Iface
Get
Return Me
End Get
End Property
End Class
Then using Python 2.5 with Python.Net 2.0 alpha 2, I cannot access the
method. Is this supported?
import clr
import Foo
f = Foo()
f.IFACE # OK
f.IFACE.Func() # results in Attribute error
Thanks,
Alex
More information about the PythonDotNet
mailing list