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

Reply via email to