CSharp · Console
using System;
using System.Reflection;
using System.Globalization;
public class Foo
{
public Foo(string a = null, string b = null)
{
Console.WriteLine("Foo called with a = " + (a ?? "<null>") + " and b = " + (b ?? "<null>"));
}
}
public class Program
{
public static void Main()
{
var bf = BindingFlags.CreateInstance | BindingFlags.Public | BindingFlags.Instance | BindingFlags.OptionalParamBinding;
Activator.CreateInstance(typeof(Foo), bf, null, new object [] { }, CultureInfo.CurrentCulture);
Activator.CreateInstance(typeof(Foo), bf, null, new object [] { "Foo" }, CultureInfo.CurrentCulture);
Activator.CreateInstance(typeof(Foo), bf, null, new object [] { "Foo", "Bar" }, CultureInfo.CurrentCulture);
}
}