【发布时间】:2015-01-18 19:12:23
【问题描述】:
我有以下方法:
public TResult Call<TResult>(Expression<Func<T, TResult>> code)
{
var returnValue = default(TResult);
// code that will inspect the interface method that is being called
// along with lots of other code
// and then call a WebAPI service.
return returnValue;
}
在这种情况下,T 是一个名为 ICustomer 的接口,TResult 将是一个类 CustomerData
在这种特定情况下,我正在执行以下操作:
var model = client.Call(customer => customer.Get(1));
我的最终目标是能够检查某些属性的接口方法。基于这些属性,我想调用一个 WebAPI 服务并将接口方法中的任何参数传递给它。
如何在Call 方法中确定调用了interface.Get(1) 方法?
【问题讨论】:
-
你应该对 T 和 TResult 设置一些类型约束,如果它们总是那些类型的话。
-
@GeorgeMauer 他们并不总是这些类型。我继续更新帖子。谢谢。
标签: c# lambda expression-trees