考慮以下情形:分配IronPython的方法C#的委託,此方法將整個應用程序域傳遞
AppDoamin 1:
public delegate bool Delegate1(class1 c1,string p);
class class1
{
public bool method1(Delegate1 d, out IEnumerable<string> partNumbers)
{
//Method body
}
}
AppDoamin2:
class x
{
public bool method2(Dictionary<string,string> x,out string[] returnValues)
{
class1Instance.method1(delegate(class1 cc,string pp){if(x.Key=="blaah") return False;},out temp);
}
}
IronPython的腳本: 電話方法2.
這種方法是給serializati因爲appDomain2中的委託使用來自堆棧的變量。
可能的解決方案: 傳遞從IronPython的腳本委託方法在appDomain2方法被傳遞,因爲它是在Appdomain3。
問題: 如何做到這一點?直到現在還無法在此搜索任何內容。
注意:使用.NET Framework 2和ironpython 2.7.1。
P.S.對不起格式不好!
該方案在跨應用程序域時沒有使用IronPython嗎? – leppie
我無法做到這一點與Ironpython涉及,但從在.Net中創建的AppDoamin3發送委託方法工作正常。如果只涉及C#,則問題歸結爲不在委託內使用堆棧變量,即僅使用局部變量。 – Mahori
謝謝。我理解這個問題。關閉的變量不可序列化。不知道如何解決這個問題。我能想到的唯一選擇是爲委託創建可遠程包裝。 – leppie