Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

InvalidCastException thrown from InvokeConstructor if passing more than 14 params arguments #9

Closed
jdh28 opened this issue Feb 4, 2014 · 1 comment

Comments

@jdh28
Copy link

jdh28 commented Feb 4, 2014

I have a class that I'm creating dynamically via Impromptu.InvokeConstructor that has params arguments. If I pass in 14 arguments it works, but 15 causes an InvalidCastException:

System.InvalidCastException: The result type 'ImpromptuParamsArgs.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 = Impromptu.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);
        }
    }
@jbtule
Copy link
Member

jbtule commented Feb 4, 2014

This code is going to be deprecated in ImpromptuInterface and lives on in a library called Dynamitey, so i've moved the issue there. ekonbenefits/dynamitey#3

@jbtule jbtule closed this as completed Feb 4, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants