[英]Pythonnet unable to call VB.NET function with collection argument
我在尝试调用TestFunc
遇到问题,因为我收到TypeError: No method matches given arguments for TestFunc
。
我的python代码如下所示:
import sys
import clr
sys.path.append(r'C:\Users\Me\Projects\Dependencies\bin')
clr.AddReference('iCamstar')
from iCamstar import CamstarUtil
containers = []
camStar = CamstarUtil(host, port, username, password, workstation)
response = camStar.TestFunc(containers)
print(response)
VB.NET 代码如下所示:
...
Public Class CamstarUtil
Public Structure MyContainer
Dim ctnrName As String
Dim productName As String
Dim specName As String
Dim description As String
...
End Structure
Public Sub New (ByVal host As String, ByVal port As String, ByVal user As String, ByVal pass As String, ByVal ws As String)
...
End Sub
Public Function TestFunc(ByVal containers As Collection(Of MyContainer))
Return "Foo Bar"
End Function
...
VB.NET 代码无法修改,它是一个共享库。 我已经尝试过上面显示的内容并尝试过:
from System import Array
py_array = []
net_array = Array[int](py_array)
response = camStar.TestFunc(net_array)
这也不起作用。 任何帮助,将不胜感激! 谢谢!
编辑:我刚刚尝试过这条路线:
clr.AddReference('System.Collections')
...
from System.Collections import *
...
containers = ArrayList()
...
这也不起作用
我能够通过导入正确的集合类型来解决这个问题:
from System.Collections.ObjectModel import Collection
...
containers = Collection[CamstarUtil.myContainer]()
...
原来它不是一个 Generic 集合类型!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.