更新表达式参数

时间:2015-04-28 06:07:40

标签: c# c#-4.0

这是我的代码:

${CPUFeatures.GetCount} $CPUCore

从上面的代码片段中可以看出,我有一个接受方法作为参数的通用方法。

原来,我打电话给public static Response<TResult> Create<TResult>(Expression<Func<Response<TResult>>> method) { var objectMember = Expression.Convert(((MethodCallExpression)method.Body).Arguments[0], typeof(TResult)); var getterLambda = Expression.Lambda<Func<TResult>>(objectMember); var getter = getterLambda.Compile(); TResult myObject = getter(); // Do something to 'myObject' // Call original method with updated 'myObject' as the parameter } 这很好。但是,我现在需要在调用方法之前先更新参数(“myObject”)。所以,我已经添加了上面的行来获取参数。

然后我“对'myObject'做点什么”。最后,我想调用原始传递的方法,但用新的,更新的参数替换原始参数。

我错过了什么?

更新

所以,我,技术上,通过以下代码完成了我的需求:

method.Compile()()

但这是使用了大量的反思和铸造。有更好的方法吗?

谢谢, 约书亚

0 个答案:

没有答案