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); }