我有一个DLL,它公开了这个C事件:
[Serializable]
public delegate object[] MyEventHandler(object[] data);
event MyEventHandler MyEvent;
以及订阅它的python代码:
^{pr2}$当DLL触发事件时,不会到达MyPythonEventHandler中的print语句;而是Python抛出ConversionException。因为异常不可序列化,所以DLL实际上接收到此异常:
System.Runtime.Serialization.SerializationException: Type 'Python.Runtime.
ConversionException' in Assembly 'Python.Runtime, Version=2.0.0.2, Culture=neutral,
PublicKeyToken=null' is not marked as serializable.
所以我真的不知道到底是什么样的转换正在尝试和失败。在
我成功地处理了来自这个DLL的其他事件回调,所以我猜这个失败与这个特定事件的委托签名有关。我的python处理程序的签名有问题吗?在
谢谢, 吉姆
我创建了一个简单的DLL,其中一个类包含委托、事件和激发事件的Run方法。剥离我的python来创建对象,订阅并运行。立即得到一个错误,表明我没有声明一个名为mypythoneventhadler的函数。在名字里发现了一个错误。在
不明白为什么Python没有在原始脚本中重新设置这个错误,但是现在我已经修复了这个名称,它就可以工作了。在
相关问题 更多 >
编程相关推荐