TypeError使用Pythonnet调用.NET方法

问题描述

链接到eBUS SDK的.NET dll调用方法时遇到问题。该代码的最终目标是使用python与GigE连接的相机进行通信。

在C#中,方法是: obj = [{ItemID: "ABC",MON: 120,TUE: 120,WED: 120,THU: 120,FRI: 120 }] ,并且是名为PvDeviceGEV的类的一部分。

在Python中,我使用pythonnet导入dll。然后,我使用以下代码

public void SetStreamDestination( string aIPAddress,ushort aDataPort ) 

这会导致错误

from PvDotNet import PvDeviceGEV
from PvDotNet import PvStreamGEV

DeviceGEV = PvDeviceGEV()
Stream = PvStreamGEV()

LocalIP = Stream.LocalIPAddress
LocalPort = Stream.LocalPort
DeviceGEV.SetStreamDestination(LocalIP,LocalPort)

由于IPAddress和aDataPort的类型分别应为字符串和UInt16,因此我不理解此错误。我已经可以从此类中调用其他方法。这是我第一次尝试将功能从另一种语言导入Python。对于理解或纠正此错误的任何帮助,将不胜感激。

解决方法

我通过更改解决了这个问题 SetStreamDestination(LocalIP,LocalPort)SetStreamDestination(LocalIP,UInt16(LocalPort))