public void Test007()
        {
            var constructor = new ConstructorReflection();
            var result = constructor.From(() => new string[1]);

            Assert.AreEqual(typeof(string[]).GetConstructor(new Type[] { typeof(int) }), result);
        }
        public void Test003()
        {
            var constructor = new ConstructorReflection();
            var result = constructor.From(() => new List<string> { default(string), default(string) });

            Assert.AreEqual(typeof(List<string>).GetConstructor(new Type[] { }), result);
        }
        public void Test002()
        {
            var constructor = new ConstructorReflection();
            var result = constructor.From(() => new string(default(char[]), default(int), default(int)));

            Assert.AreEqual(typeof(string).GetConstructor(new Type[] { typeof(char[]), typeof(int) , typeof(int) }), result);
        }
        public void Test005()
        {
            var constructor = new ConstructorReflection();
            var result = constructor.From(() => new Dummy {
                A = default(string),
                B = default(string)
            });

            Assert.AreEqual(typeof(Dummy).GetConstructor(new Type[] { }), result);
        }
        public void Test004()
        {
            var constructor = new ConstructorReflection();
            var result = constructor.From(() => new {
                A = default(string),
                B = default(string)
            });

            var type = (new { A = default(string), B=default(string) }).GetType();
            Assert.AreEqual(type.GetConstructor(new Type[] { typeof(string), typeof(string) }), result);
        }