比方说,我有这样的方法:最简单的方法,当方法中包含一个“裁判”参数
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);
不过,我碰到一个情况,我需要使用这个对发生在一个“裁判”参数(WCF服务电话),其函数功能类不能处理的方法。
Delegate methodCall =
new Func<MyService.InputClass, MyService.CallResult>(service.DoWork);
因为我没有很多的处理代表的经验,这将是对上面的方法传授给我的创建委托的最简单的方法?
重写该方法,使其没有'ref'参数? – dtb
@dtb - 我希望有一种比自定义函数中包装服务生成的包装更简单的方法来解决问题 – John
请参阅http://stackoverflow.com/questions/5197965/c-sharp-funct-not-accepting- ref-type-input-parameter为什么ref是不被允许的,请参阅http://stackoverflow.com/questions/1283127/c-sharp-func-with-out-parameter寻找可能的解决方案。 – dash