我希望能够在另一种方法中指定方法。
像
这样的东西public class Binder
{
public void Bind(whatShouldIWriteHere?)
{
// do stuff with the MethodInfo
}
}
所以我可以这样做:
public class A
{
public void DoIt(string tmp)
{
}
}
var binder = new Binder()
binder.Bind<A>(x => x.DoIt);
而不是:
var method = typeof(A).GetMethod("DoIt");
binder.Bind(method);
这可能吗? :)
答案 0 :(得分:2)
将该方法作为委托传递,并使用Delegate.Method属性。
在你的情况下,Binder.Bind就像:
public void Bind(Delegate del)
{
var info = del.Method;
//Add your logic here.
}
并将方法传递给它:
var binder = new Binder();
var instance = new A();
binder.Bind(new Action<string>(instance.DoIt))