当方法包含';ref';参数

本文关键字:参数 ref 方法 包含 | 更新日期: 2023-09-27 18:20:53

假设我有这样的方法:

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);

既然我没有太多处理委托的经验,那么创建委托的最简单方法是什么?

当方法包含';ref';参数

这不是我的应用程序,所以我没有简单的测试方法(有人问我是否知道解决问题的方法),但这看起来应该有效吗?

Delegate methodCall = new Func<MyService.CallResult>(delegate() { return service.DoWork(ref myInput)});
object callResult = CallMethod(methodCall, null);