IronPython и создание экземпляров COM-объектов

Я использую IronPython 2.0 в окне консоли SharpDevelop 3.1. Я пытаюсь сослаться на заменяющую библиотеку Redemption CDO и использовать ее.

Стандартное использование библиотеки - создание экземпляра объекта RDOSession, а затем использование методов этого объекта для навигации по объектной модели RDO.

Я зарегистрировал DLL Redemption COM и сослался на нее из проекта, который создал для нее сборку взаимодействия. Затем в окне консоли IronPython я делаю следующее: import clr clr.AddReferenceToFileAndPath (r'd: \ SharpDevelop Projects \ TestPython \ TestPython \ obj \ Debug \ Interop.Redemption.dll ') import Redemption

Пока это работает. Следующим шагом будет получение объекта RDOSession и его создание. Если бы это сработало, я бы подумал, как это сделать:

session = Redemption.RDOSession ()

Однако это дает ошибку: TypeError: невозможно создать экземпляры RDOSession.

Итак, мой вопрос (или был): как мне создать экземпляр объекта, такого как RDOSession?

Однако я просто ответил на свой вопрос, пытаясь объяснить это. Я продолжу с ответом, поскольку, несмотря на то, что это кажется почти глупым, возможно, это будет полезно кому-то еще.

Когда я ввел строку «session = Redemption.RDOSession ()», в подсказке появилось «RDOSession», а также «RDOSessionClass» прямо под ним. Я не знаю, как последний был сгенерирован, но это звучало как экземпляр объекта (если это слово).

>>> session = Redemption.RDOSessionClass ()

>>>

И вот. Вызов метода Logon работал как чемпион для нового объекта сеанса.

Спасибо, stackoverflow!


person Binary Phile    schedule 13.05.2009    source источник
comment
Потрясающие. Отлично работает и позволяет мне делать действительно крутые вещи.   -  person Instance Hunter    schedule 25.06.2009


Ответы (1)


Вам необходимо использовать:

session = Redemption.RDOSessionClass()
person Jonathan Hartley    schedule 20.07.2009