C# (Python)使用pythonnet调用需要ArrayList类型的DLL函数(C)

C# (Python)使用pythonnet调用需要ArrayList类型的DLL函数(C),c#,python,.net,overloading,python.net,C#,Python,.net,Overloading,Python.net,我试图从DLL运行名为functionName的函数,同时从python项目调用它。我已经控制了许多DLL函数,但在运行functionName时,我相信我对pythonnet的列表实现C的数组列表有问题 我试图调用的DLL中的行 public int functionName(ArrayList data) 目前,我尝试通过以下方式创建python ArrayList: from System import Int32 from System import Array data1 = [I

我试图从DLL运行名为functionName的函数,同时从python项目调用它。我已经控制了许多DLL函数,但在运行functionName时,我相信我对pythonnet的列表实现C的数组列表有问题

我试图调用的DLL中的行

public int functionName(ArrayList data)
目前,我尝试通过以下方式创建python ArrayList:

from System import Int32
from System import Array

data1 = [Int32(x) for x in data1]                # data1 is a list
data1 = Array[Int32](data1)                      # ArrayList Expecting 8x Arrays to be added

import clr
clr.AddReference('System.Collections')
from System.Collections.Generic import List      # Avoids Deprecation

Py_Array = System.Collections.Generic.List[Array[Int32]]()
Py_Array.Add(data1)
...
Py_Array.Add(data1)                              # 8 times total

DLL.functionName(Py_Array)
结果一直是:

TypeError:  No method matches given arguments
我尝试了很多不同的方法来解决这个问题,我相信这个问题可能属于System.Collections.Generic.List与C的预期ArrayList类型不匹配

任何帮助都将不胜感激

编辑1

我发现还有一个:

System.Collections.ArrayList()

但这并没有解决方法匹配给定参数的问题。

解决方案是使用python调用在C DLL中编写的函数,该DLL从第一个DLL中获取类型和函数


恼人,但不知道如何从python引用在C DLL中创建的自定义类型

解决方案是使用python调用在C DLL中编写的函数,该DLL从第一个DLL中获取类型和函数


恼人,但不知道如何从python引用在C DLL中创建的自定义类型

您是否尝试过通过重载或反射强制方法签名?您是否尝试过通过重载或反射强制方法签名?