使用C#将类对象作为Invoke方法的参数传递

时间:2011-06-14 18:32:56

标签: c#-4.0 .net-4.0

使用Invoke方法将类对象作为参数发送的语法是什么?

Invoke方法调用导致错误:

  

“类型为'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 :(得分:0)

您正在加载两次相同的程序集,两个相同但不兼容的类型。

您只需要加载一次程序集。