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?