J'ai une classe C# qui ressemble un peu:Attribution d'une méthode IronPython à un délégué C#
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 */
}
Et je un script IronPython qui obtient exécuté dans l'application qui ressemble
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
Mais lorsque ProcessMethod
est appelée (en dehors d'IronPython), après cette affectation, la méthode par défaut est exécutée.
Je sais que le script est exécuté car d'autres parties du script fonctionnent.
Comment est-ce que je devrais faire ceci?
En réponse à un ancien poste, mais ne vous aussi besoin d'importer le nom IDataSource quelque part pour que cela fonctionne? –