¿Cómo pasar una función como parámetro en C #?

¿Es posible pasar una función como parámetro en C #? Puedo hacerlo usando las clases Func o Action, pero esto me obliga a declarar toda la firma de la función a la vez. Cuando trato de usar Delegado, aparece un error de compilación que dice que no puede convertir un grupo de métodos en un Delegado.

Estoy trabajando en esoAxial y estoy tratando de permitir que los usuarios llamen a servicios web. Lo que busco es la capacidad de crear la clase de proxy de Visual Studio y luego pasar la función generada. La firma de la función no importa porque el código generado solo usa el nombre de la función. Sin embargo, me gustaría pasar la función en lugar del nombre por dos razones: la capacidad de usar la propiedad Url del proxy y un error del compilador si el servicio web no existe o se actualiza en Visual Studio.


public void AlertIt(object o) {
    Axial.DOM.Window.Alert(o.ToString());
}
public void CallAddService() {
    object[] param = new object[] { int.Parse(txtA.Text), int.Parse(txtB.Text) };
    Axial.ServerScript.CallWebService(new WSProxy.WS().Add, param, AlertIt, AlertIt);
}

class Axial.ServerScript {
    public void CallWebService(Delegate method, object[] param, Action<object> successCallback, Action<object> failureCallback) {
        // translate to javascript (already working)
    }
}

Respuestas a la pregunta(8)

Su respuesta a la pregunta