Tengo una clase C# que se ve un poco como:Asignación de un método IronPython a un C# delegado
public class MyClass
{
private Func<IDataCource, object> processMethod = (ds) =>
{
//default method for the class
}
public Func<IDataCource, object> ProcessMethod
{
get{ return processMethod; }
set{ processMethod = value; }
}
/* Other details elided */
}
y tengo un guión IronPython que se ejecute en la aplicación que se parece a
from MyApp import myObj #instance of MyClass
def OtherMethod(ds):
if ds.Data.Length > 0 :
quot = sum(ds.Data.Real)/sum(ds.Data.Imag)
return quot
return 0.0
myObj.ProcessMethod = OtherMethod
Pero cuando se llama a ProcessMethod
(fuera de IronPython), después de esta asignación, se ejecuta el método predeterminado.
Sé que el script se ejecuta porque funcionan otras partes del script.
¿Cómo debería estar haciendo esto?
En respuesta a una entrada antigua, pero no usted también necesito importar el nombre IDataSource de alguna parte para que esto funcione? –