IronPython和继承树

时间:2014-02-19 17:00:59

标签: inheritance ironpython typeerror

IronPython如何与继承树一起使用?

我有以下问题。我使用clr.AddReference()从.NET导入了一个类。 我想将一个对象传递给等待特定类型的方法。但是我有一个对象,它是特定类型的子类,并且该方法不接受它。

假设我有A的A类和A的子类B.比我将B的isntance传递给等待A的方法C.在.NET中可以传递子类,但是IronPython会抛出TypeError。

如何向IronPython明确说明或明确地将B投射到A? clr.Convert没有帮助,它不支持强制转换为基类。

具体来说,我想从IronPython运行编码的UI测试。我能够引用所有需要的库并开始测试应用程序。然后我想点击主窗口,在这里我得到了什么:

from System import *
from System.Threading import *
from System.Reflection import *
from Microsoft.VisualStudio.TestTools.UITesting import *
from Microsoft.VisualStudio.TestTools.UITesting.WpfControls import *
import time

Playback.Initialize()
app = ApplicationUnderTest.Launch(r"application.exe")
try:
    main_window = WpfWindow()
    main_window.SearchProperties[WpfWindow.PropertyNames.Name] = "Application"

    Mouse.Click.Overloads[clr.GetClrType(UITestControl)](main_window)
finally:
    Playback.Cleanup()

当我运行此代码时,我得到:

Traceback (most recent call last):
  File "Tests.py", line 44, in <module>
TypeError: expected UITestControl, got WpfWindow

感谢您的帮助!

0 个答案:

没有答案