Hi Patrick, Assuming you have the next C# class in C:\CustomAssembly.dll: namespace ClassLibrary2 { public class Class1 { public Class1(int a) { Console.WriteLine(a); } public Class1(int a, string s) { Console.WriteLine("{0} and {1}",a,s); } public Class1(bool b) { Console.WriteLine("b = {0}",b); } } }
There are several constructors here. All you have to do to call a specific constructor via IronRuby, is to get the constructor method object (with clr_ctor like Tomas said), use the overload method to pick up the needed overload and call it. For example, the next IronRuby code executes all three constructors of the custom class above: require 'c:\CustomAssembly.dll' include ClassLibrary2 # Call Class1(int a) constructor: Class1.clr_ctor.overload(System::Int32).call 1 # Prints "1" # Call Class1(int a, string s) constructor Class1.clr_ctor.overload(System::Int32, System::String).call 1, "yes" # Prints "1 and yes" # Call Class1(bool b) constructor: Class1.clr_ctor.overload(System::Boolean).call true # Prints "b = true" Hope it helps, Shay. -- -------------------------------------------------- Shay Friedman Author of IronRuby Unleashed http://www.IronShay.com Follow me: http://twitter.com/ironshay On Fri, Nov 13, 2009 at 4:18 AM, Patrick Brown <patrickcbr...@gmail.com>wrote: > Hi > > That is fine in this case, can you tell me, in cases where I can't fall > back on a ruby class, is there a way to call an overloaded constructor? > Your reply makes me worry a bit more. > > Thanks, > Patrick > > > On Thu, Nov 12, 2009 at 7:11 PM, Ivan Porto Carrero > <i...@flanders.co.nz>wrote: > >> But you can just use the ruby way and that is a lot less noisy >> >> for a local time >> >> Time.local 2009, 9, 28 >> http://ruby-doc.org/core/classes/Time.html#M000254 >> >> for utc >> Time.utc 2009, 9, 29 >> http://ruby-doc.org/core/classes/Time.html#M000252 >> >> It still creates a System::DateTime underneath >> >> --- >> Met vriendelijke groeten - Best regards - Salutations >> Ivan Porto Carrero >> Blog: http://flanders.co.nz >> Google Wave: portocarrero.i...@googlewave.com >> Twitter: http://twitter.com/casualjim >> Author of IronRuby in Action (http://manning.com/carrero) >> >> >> >> On Fri, Nov 13, 2009 at 12:49 AM, Patrick Brown >> <patrickcbr...@gmail.com>wrote: >> >>> Hi >>> >>> Is there a way for me to call an overloaded constructor?? I want >>> to say date = new DateTime(2009,9,28) using IronRuby 0.9.2. I have been >>> searching quite a bit and haven't seen anything so far. >>> >>> Thank you, >>> Patrick >>> >>> _______________________________________________ >>> Ironruby-core mailing list >>> Ironruby-core@rubyforge.org >>> http://rubyforge.org/mailman/listinfo/ironruby-core >>> >>> >> >> _______________________________________________ >> Ironruby-core mailing list >> Ironruby-core@rubyforge.org >> http://rubyforge.org/mailman/listinfo/ironruby-core >> >> > > _______________________________________________ > Ironruby-core mailing list > Ironruby-core@rubyforge.org > http://rubyforge.org/mailman/listinfo/ironruby-core > >
_______________________________________________ Ironruby-core mailing list Ironruby-core@rubyforge.org http://rubyforge.org/mailman/listinfo/ironruby-core