我正在尝试传递一个描述方法的表达式,但我希望参数是强类型的,我不想知道方法签名或传递表达式中的参数,如下所示:
GetMethod<MyClass>(c => c.DoSomething);
哪里DoSomething
可以有这样的方法签名......string DoSomething(int id, int count)
我知道我可以做这样的事情:
MemberInfo GetMethod<T>(Expression<Func<T, Delegate>> expression);
//implementation
GetMethod<MyClass>(c => new Func<int, int, string>(c.DoSomething))
但坦率地说,这很丑陋。
这可能吗?