我在 SharpDevelop 3.1 控制台窗口中使用 IronPython 2.0。我正在尝试引用和使用 Redemption CDO 替换库。
该库的标准用法是实例化一个 RDOSession 对象,然后使用该对象上的方法在 RDO 对象模型中导航。
我已经注册了 Redemption COM dll 并从一个项目中引用了它,该项目为其创建了一个互操作程序集。在 IronPython 控制台窗口中,我执行以下操作: 导入 clr clr.AddReferenceToFileAndPath(r'd:\SharpDevelop Projects\TestPython\TestPython\obj\Debug\Interop.Redemption.dll') 导入赎回
到目前为止,这是有效的。下一步是获取一个 RDOSession 对象并实例化它。如果可行,这将是我的想法:
session = Redemption.RDOSession()
然而,这给出了一个错误: 类型错误:无法创建 RDOSession 的实例
所以我的问题是(或曾经是):如何实例化像 RDOSession 这样的对象?
但是,我只是在尝试解释它时回答了我自己的问题。我会继续回答这个问题,因为尽管这样做似乎很愚蠢,但也许对其他人有用。
当我输入“session = Redemption.RDOSession()”行时,调用提示在其正下方显示“RDOSession”和“RDOSessionClass”。我不知道后者是如何生成的,但它听起来像是一个可实例化的(如果这是一个词的话)对象。
>>> session = Redemption.RDOSessionClass()
>>>
你瞧。调用 Logon 方法在新 session 对象上表现出色。
感谢计算器!
最佳答案
你需要使用:
session = Redemption.RDOSessionClass()
关于IronPython 和实例化 COM 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/858230/