Ho un # di classe C che sembra un po 'come:Assegnazione di un metodo di IronPython a un C# delegato
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 */
}
E io ho uno script IronPython che viene eseguito in applicazione che assomiglia
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
Ma quando viene chiamato ProcessMethod
(fuori da IronPython), dopo questo assegnamento, viene eseguito il metodo predefinito.
So che lo script viene eseguito perché altre parti dello script funzionano.
Come devo fare?
Risposta a un vecchio post, ma non è vero anche bisogno di importare il nome IDataSource da qualche parte per farlo funzionare? –