Передача объектов класса в качестве параметров для Invoke Method с использованием C # - PullRequest
1 голос
/ 14 июня 2011

Каков синтаксис отправки объекта класса в качестве параметра с помощью метода Invoke?

Вызов метода Invoke вызывает ошибку:

"Objectтипа 'MSM_ns.MyParameterClass' не может быть преобразован в тип 'MSM_ns.MyParameterClass' "

Параметры базовых типов данных работают нормально, но сложные типы данных вызывают ошибки.

byte[] data = new byte[] { 0x01, 0x02, 0x03, 0x04 };

MyParameterClass myParams = new MyParametersClass("ABC", 123, 3.14159);

// attach to the dll
MethodInfo dllMethodInfo = Invoke.LoadDLL("MSM.dll", "MSM_ns", "MSMClass", "MSMMethod1");

// attach the parameters
object[] parameters = new object[2];
parameters[0] = data; 
parameters[1] = myParams;

// call the DLL
bool result = (bool)dllMethodInfo.Invoke(null, parameters);

--------

public static bool MSMMethod1(ref byte[] dataToVerify, MyParameterClass myParams)
{
   . . .
}

1 Ответ

0 голосов
/ 14 июня 2011

Вы загружаете одну и ту же сборку дважды, с двумя одинаковыми, но несовместимыми типами.

Вам необходимо загрузить сборку только один раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...