Manejo de un método C # que no está definido en un objeto dinámico (también conocido como respond_to / method_missing)

Dado el nuevo soporte dinámico en C # 4, ¿es posible escribir una clase de tal manera que si se invoca un método en una instancia y ese método no está presente, el envío se pasa a otro método? Esto podría parecer algo como:

public class Apple : ... {
  // ...

  private ... MethodMissing(string name, ...) {
    if (name == "TurnIntoOrange") {
      // do something
    }
  }
}

dynamic d = new Apple();
d.TurnIntoOrange();       // Not actually defined on Apple; will pass to MethodMissing.

Otros idiomas lo llamarían "soporte de método_missing", bajo el encabezado más general de metaprogramación. No estoy seguro de lo que C # llama a esto específicamente. ¿Pero es posible?

Respuestas a la pregunta(1)

Su respuesta a la pregunta