Hi everyone, Tonight I was going to write a blog post on C# Interop so I I was playing around a bit more with some of the new C# 3.0 features and I looked at Extension methods and I can't seem to get it to work with IP B2.
My C# code is this: public static class POCOExt { public static void Print(this POCO poco) { Console.WriteLine(poco); Console.WriteLine(poco.Created); } } public class POCO { public DateTime Created { get; set; } public POCO() { Created = DateTime.Now; } } I drop that assembly into my DLLs folder, when using it in ipy it doesn't seem to be detecting the extension methods. After doing a dir on POCO, I expected to see the method Print. >>> from DLRInterop import * >>> p = POCO() >>> dir (p) ['Created', 'Equals', 'Finalize', 'GetHashCode', 'GetType', 'MemberwiseClone', 'ReferenceEquals', 'ToString', '__class__', '__delattr__', '__doc__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__str__', 'get_Created', 'set_Created'] >>> p.Print() Traceback (most recent call last): File , line unknown, in Initialize##48 AttributeError: 'POCO' object has no attribute 'Print' This appeared to work, but it does go against C# 3.0 and isn't a great approach.... >>> POCOExt.Print(p) DLRInterop.POCO 08/04/2008 22:43:59 Is there anything special I need to do to get this to work as I would expect, or is there something where to call the Extension Method you need to go to the extension class? Cheers Ben Blog.BenHall.me.uk _______________________________________________ Users mailing list Users@lists.ironpython.com http://lists.ironpython.com/listinfo.cgi/users-ironpython.com