簡體   English   中英

當方法包含'ref'參數時,最簡單的方法來創建委托

[英]Easiest way to create a delegate when the method contains a 'ref' parameter

假設我有這種方法:

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

由於我沒有很多處理代表的經驗,為上述方法創建委托的最簡單方法是什么?

這不是我的應用程序,所以我沒有一種簡單的方法來測試它(我只是被問到我是否知道解決問題的方法),但這看起來應該有用嗎?

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM