Cool. Thanks Brian, this worked! -Alex Brian Lloyd-5 wrote:
have you tried explicitly calling this through the interface? You need to do something similar to a cast in C#:
from mynamespace import Foo, Iface
inst = Foo() # create an instance
wrapped = Iface(inst) # 'cast' to the interface
wrapped.Func() # should now work
hope this helps,
-Brian
On 12/9/07 4:01 PM, "lance23runner" <lance23runner@yahoo.com> wrote:
I forgot to add "Implements Iface.Func" to method Func, I hope this doesn't confuse my problem. It is added below.
The private method Func is accessible in VB.NET using the public IFACE. This is intended so the class does not see these methods, but it can access them using the IFACE property. A protected method doesn't provide the abstraction.
Thanks, -Alex
Feihong Hsu wrote:
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@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 Implements Iface.Func 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
_________________________________________________ Python.NET mailing list - PythonDotNet@python.org http://mail.python.org/mailman/listinfo/pythondotnet
-- View this message in context: http://www.nabble.com/Accessing-class-interface-with-private-methods-tp14234... Sent from the Python - pythondotnet mailing list archive at Nabble.com.