比方說,我有這樣的方法:最簡單的方法,當方法中包含一個「裁判」參數
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