public void CreateCustomDelegate_GenArgs_int()
        {
            var m    = typeof(ClassWithGenMethod).GetMethod(nameof(ClassWithGenMethod.GetVal));
            var mDel = m.CreateCustomDelegate <Func <ClassWithGenMethod, string, int> >(typeof(int));
            var inst = new ClassWithGenMethod();
            var obj  = mDel(inst, "bob");

            Assert.Equal(5, obj);
        }
        public void CreateCustomDelegate_GenArgsAsync_string()
        {
            var m    = typeof(ClassWithGenMethod).GetMethod(nameof(ClassWithGenMethod.GetValAsync));
            var mDel = m.CreateCustomDelegate <Func <ClassWithGenMethod, string, Task <string> > >(typeof(string));
            var inst = new ClassWithGenMethod();
            var obj  = mDel(inst, "bob");

            Assert.Equal("bob", obj.Result);
        }
        public void DelForMethod_GenArgs()
        {
            var m    = typeof(ClassWithGenMethod).GetMethod(nameof(ClassWithGenMethod.GetVal));
            var mDel = m.DelegateForMethod(typeof(string));
            var inst = new ClassWithGenMethod();
            var obj  = mDel(inst, "bob");

            Assert.IsType <string>(obj);
            Assert.Equal("bob", obj);
        }