我正在尝试使用自己的方法创建一个类来处理远程服务器上的调用方法。为了使客户端调用程序更容易,我正在编写一个接受接口的泛型类,以便编译器知道参数的数量和方法的返回类型。
public class Service<TInterface>
{
public TResult Invoke<TResult>(Func<TInterface, TResult> function)
{
// Do the work
}
}
所以我们的想法是他们可以引用具有接口的程序集,例如:
public interface ICalculator
{
int Add(int num1, int num2);
}
然后他们可以编写代码来点击服务:
var addend = new Service<ICalculator>(/* constructor */).Invoke(s => s.Add(3, 4));
问题是在第一个代码块中,我需要知道如何找出它们在lamda表达式中传递的参数。我该怎么做?