from ekonbenefits/impromptu-interface#9: by @jdh28
I have a class that I'm creating dynamically via Dynamic.InvokeConstructor that has params arguments. If I pass in 14 arguments it works, but 15 causes an InvalidCastException:
System.InvalidCastException: The result type 'MyClass' of the dynamic binding produced by binder 'Microsoft.CSharp.RuntimeBinder.CSharpInvokeConstructorBinder' is not compatible with the result type 'System.Type' expected by the call site.
Here is some example code:
class Program
{
static void Main(string[] args)
{
var parameters = Enumerable.Range(0, 15).Select(i => i.ToString() as object).ToArray();
var instance = Dynamic.InvokeConstructor(typeof(MyClass), parameters);
Console.Out.WriteLine(instance.Args);
}
}
public class MyClass
{
public readonly string Args;
public MyClass(params string[] args)
{
Args = String.Join(",", args);
}
}