У меня есть класс 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
. Но это не тот экземпляр, который я отправил в качестве второго параметра, указанного в свойстве out
.
Когда я проверяю результаты, я вижу, что объект в возвращенном
Кортеж был изменен правильно, но экземпляр, который я отправляю
не был изменен.
Есть идеи почему?