hi again,
 

this was just a repro. I can not change the visibility of the "Concrete"
class. The interface
and the "Base" class are the public API of this assembly. I will file a
bug on codeplex.


Thanks and keep up the great work,
Helmut


________________________________

Von: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Im Auftrag von Curt
Hagenlocher
Gesendet: Mittwoch, 11. Juni 2008 18:35
An: Discussion of IronPython
Betreff: Re: [IronPython] Trouble calling a method on a .NET object


Your code works as expected if you make the "Concrete" class public
instead of internal. Please file this as an issue on CodePlex at
http://www.codeplex.com/IronPython
 

On Wed, Jun 11, 2008 at 6:09 AM, Orian, Helmut <[EMAIL PROTECTED]>
wrote:


        I'm having trouble calling a method on one of my .NET objects.
        
        if you compile the following repro into a "test.dll":
        
        
        namespace Test {
               public interface ISomeInterface {
                       string Greet();
               }
        
               public abstract class Base {}
        
               public static class SomeFactory {
                       public static object Get() {
                               return new Concrete();
                       }
               }
        
               internal class Concrete : Base, ISomeInterface {
                       public string Greet() {
                               return "Hello world!";
                       }
               }
        }
        
        
        and try to use them:
        
        >>> import clr
        >>> clr.AddReference("test")
        >>> from Test import *
        >>> o = SomeFactory.Get()
        >>> print("Greet" in dir(o))
        True
        >>> print(o.Greet())
        
        Traceback (most recent call last):
         File "<stdin>", line 1, in <module>
        TypeError: expected ISomeInterface, got Base
        
        
        To me it looks like a bug regarding collection of polymorphic
        information on .NET types;
        or am I missing something?
        
        
        Thanks,
        Helmut
        
        
        
        
------------------------------------------------------------------------
---
        
         An- und Abmeldung zur SCHEMA Mailingliste unter
http://www.schema.de/mail
        
        
------------------------------------------------------------------------
---
        
        
        _______________________________________________
        Users mailing list
        [email protected]
        http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
        


_______________________________________________
Users mailing list
[email protected]
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

Reply via email to