Mam klasy C#, który wygląda trochę jak:Przypisywanie metodę IronPython do C# delegata
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 */
}
I mam skryptu IronPython, który zostanie uruchomiony w aplikacji, która wygląda jak
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
Po wywołaniu ProcessMethod
(poza IronPythonem), po tym przypisaniu uruchamiana jest metoda domyślna.
Wiem, że skrypt jest uruchamiany, ponieważ działają inne części skryptu.
Jak powinienem to robić?
Odpowiadając na starym stanowisku, ale prawda również musisz zaimportować nazwę IDataSource skądś, żeby to zadziałało? –