假设我有这种方法:
public static object CallMethod(Delegate method, params object[] args)
{
//more logic
return method.DynamicInvoke(args);
}
以下内容适用于大多数情况,称之为(简单示例):
Delegate methodCall = new Func<decimal,decimal>(Math.Ceiling);
object callResult = CallMethod(methodCall, myNumber);
但是,我遇到了一种情况,我需要在一个接受'ref'参数(WCF服务调用)的方法上使用它,这是Func类无法处理的。
Delegate methodCall =
new Func<MyService.InputClass, MyService.CallResult>(service.DoWork);
由于我没有很多处理代表的经验,为上述方法创建委托的最简单方法是什么??
答案 0 :(得分:0)
这不是我的应用程序所以我没有一种简单的方法来测试它(我只是被问到我是否知道解决问题的方法),但这看起来应该有效吗?
Delegate methodCall = new Func<MyService.CallResult>(delegate() { return service.DoWork(ref myInput)});
object callResult = CallMethod(methodCall, null);