3

我在 SharpDevelop 3.1 控制台窗口中使用 IronPython 2.0。我正在尝试引用和使用 Redemption CDO 替换库。

该库的标准用法是实例化一个 RDOSession 对象,然后使用该对象上的方法在 RDO 对象模型中导航。

我已经注册了 Redemption COM dll 并从一个项目中引用了它,该项目为它创建了一个互操作程序集。然后在 IronPython 控制台窗口中执行以下操作: import clr clr.AddReferenceToFileAndPath(r'd:\SharpDevelop Projects\TestPython\TestPython\obj\Debug\Interop.Redemption.dll') import Redemption

到目前为止,这有效。下一步是获取一个 RDOSession 对象并实例化它。如果它有效,这将是我的想法:

session = Redemption.RDOSession()

但是,这会产生错误:TypeError: Cannot create instances of RDOSession

所以我的问题是(或曾经是):如何实例化像 RDOSession 这样的对象?

但是,我只是回答了我自己的问题以试图解释它。我将继续回答,因为尽管这样做似乎很愚蠢,但也许对其他人有用。

当我输入“session = Redemption.RDOSession()”行时,调用提示在其下方出现“RDOSession”以及“RDOSessionClass”。我不知道后者是如何生成的,但它听起来像是一个可实例化的(如果这是一个词)对象。

>>> session = Redemption.RDOSessionClass()

>>>

瞧瞧。调用 Logon 方法就像在新会话对象上的冠军一样。

感谢堆栈溢出!

4

1 回答 1

0

你需要使用:

session = Redemption.RDOSessionClass()
于 2009-07-20T09:53:57.740 回答