我正在尝试审计应用程序内的方法调用,以便对参数进行分析和剖析。我已经成功实现了这一点,
Run( ()=> SomeFunction(paramA, paramB), paramA, paramB) );
public static void Run(Expression<Action> action, params object[] param)
{
var func = action.Compile();
func();
}
public static T Run<T>(Expression<Func<T>> action, params object[] param)
{
var func = action.Compile();
return func();
}
不过我希望去掉 Lambda 表达式,让这个方法更加易用。例如:
Run(SomeFunc, paramA, paramB);
我已经到这个地方了,但现在卡住了,如果有人能帮帮我:
private T Run<T>(Func<T> subReturn) {}
Run<T>
方法的param
参数,这是有意为之吗? - Sergey KalinichenkoRun(SomeFunc,paramA,paramB)
比Run(() => SomeFunc(paramA, paramB))
更容易使用?正如其他人指出的那样,你不需要将参数传递两次,它们已经作为Expression<>
的一部分存在,尽管你需要解析它来提取它们。 - Dylan Nicholson