我有一个 C# 类
public MY_CLASS(int number)
{
SomeField = number;
SetElseWhere = 0;
}
}
我想传递给一个 C# 函数
public static bool MyTask(string pathXML, out MY_CLASS test)
我希望在一个实例中MyTask
修改该字段SetElseWhere
MY_CLASS
在 PythonNet 中,我将函数称为
import System
my_dll = System.Reflection.Assembly.LoadFile('example.dll')
MY_CLASS_t = my_dll.GetType('NAMESPACE.MY_CLASS')
my_instance = System.Activator.CreateInstance(MY_CLASS_t)
x = MyTask('test.xml', my_instance)
现在它变得越来越奇怪,至少对我来说:
返回值 x 是一个包含两个条目的元组,一个布尔值和一个类型为 的对象NAMESPACE.MY_CLASS
。但这不是我作为第二个参数发送的实例,用 property 说明out
。
当我检查结果时,我可以看到返回的元组中的对象已被正确修改,但我发送的实例没有被修改。
任何想法为什么?